Handle inline and block comments for code generation [devtools/devtools-frontend : main]

0 views
Skip to first unread message

Samiya Caur (Gerrit)

unread,
Dec 2, 2025, 9:21:49 AMDec 2
to Ergün Erdoğmuş, devtools-rev...@chromium.org
Attention needed from Ergün Erdoğmuş

Samiya Caur voted Commit-Queue+1

Commit-Queue+1
Open in Gerrit

Related details

Attention is currently required from:
  • Ergün Erdoğmuş
Submit Requirements:
  • requirement satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: devtools/devtools-frontend
Gerrit-Branch: main
Gerrit-Change-Id: Id29d161ccaf806d01bc7de31fce99dfa161d0395
Gerrit-Change-Number: 7207065
Gerrit-PatchSet: 1
Gerrit-Owner: Samiya Caur <sam...@chromium.org>
Gerrit-Reviewer: Ergün Erdoğmuş <erg...@chromium.org>
Gerrit-Reviewer: Samiya Caur <sam...@chromium.org>
Gerrit-Attention: Ergün Erdoğmuş <erg...@chromium.org>
Gerrit-Comment-Date: Tue, 02 Dec 2025 14:21:45 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Samiya Caur (Gerrit)

unread,
Dec 22, 2025, 7:39:17 AM (9 days ago) Dec 22
to Code Review Nudger, Devtools-frontend LUCI CQ, Ergün Erdoğmuş, devtools-rev...@chromium.org
Attention needed from Ergün Erdoğmuş

Samiya Caur added 1 comment

Patchset-level comments
File-level comment, Patchset 6 (Latest):
Samiya Caur . resolved

Updated code to only work if the cursor is at the end of the block comment

Open in Gerrit

Related details

Attention is currently required from:
  • Ergün Erdoğmuş
Submit Requirements:
  • requirement satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: devtools/devtools-frontend
Gerrit-Branch: main
Gerrit-Change-Id: Id29d161ccaf806d01bc7de31fce99dfa161d0395
Gerrit-Change-Number: 7207065
Gerrit-PatchSet: 6
Gerrit-Owner: Samiya Caur <sam...@chromium.org>
Gerrit-Reviewer: Ergün Erdoğmuş <erg...@chromium.org>
Gerrit-Reviewer: Samiya Caur <sam...@chromium.org>
Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
Gerrit-CC: Devtools-frontend LUCI CQ <devtools-fro...@luci-project-accounts.iam.gserviceaccount.com>
Gerrit-Attention: Ergün Erdoğmuş <erg...@chromium.org>
Gerrit-Comment-Date: Mon, 22 Dec 2025 12:39:12 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Ergün Erdoğmuş (Gerrit)

unread,
Dec 29, 2025, 7:02:53 AM (yesterday) Dec 29
to Samiya Caur, Code Review Nudger, Devtools-frontend LUCI CQ, devtools-rev...@chromium.org
Attention needed from Samiya Caur

Ergün Erdoğmuş added 4 comments

Patchset-level comments
Ergün Erdoğmuş . unresolved

I have refined the implementation a bit with Jetski and here is the diff, and I think I quite liked it: https://paste.googleplex.com/6326754597797888. The only issue might be that we're not able to stub out ES modules so we might want to make `AiCodeGenerationParser` a class with a static method `getCommentText` that we can stub out in `AiCodeGenerationProvider` tests.

Especially, testing this logic in isolation and keeping the implementation separate from the generation is quite cool.

I have added some comments for that state, please give it a try and let me know what you think!

===

We can add a dedicated unit test file `AiCodeGenerationParser.test.ts` for the new module. This should test edge cases (empty files, specific whitespace scenarios, unclosed comments) in isolation, while

`AiCodeGenerationProvider.test.ts` can focus on the higher-level integration (triggering the AI generation) once `AiCodeGenerationParser`s `getCommentText` resolves to a prompt.

File front_end/ui/components/text_editor/AiCodeGenerationProvider.ts
Line 38, Patchset 6 (Latest):function getCommentNodeAtCursor(state: CodeMirror.EditorState, cursorPosition: number): CodeMirror.SyntaxNode|
Ergün Erdoğmuş . unresolved

I think... this file is becoming quite large. Let's move all the comment parsing logic, including this function and the regex patterns, into a separate module named `AiCodeGenerationParser.ts`.

Additionally, this node resolution is too strict. If a user types a space after a block comment (e.g. `/* ... */ |`), node.to will not match the cursor position. We can update the logic to be tolerant of trailing whitespace: if the strict check fails, look at the line up to the cursor, trim the end, and check if we are checking a block comment node at that 'effective' end.

Line 262, Patchset 6 (Latest): #getCommentTextAtCursor(cursorPosition: number): string|undefined {
Ergün Erdoğmuş . unresolved

Let's refactor this method to use the new `AiCodeGenerationParser`. Inside the parser, we can break this logic down into smaller, helper functions for readability:

  • `resolveCommentNode(state, cursor)`
  • `extractBlockComment(state, node)`
  • `extractCommentText(state, node)`
  • `fallbackCommentCheck(state, cursor)`
Line 388, Patchset 6 (Latest): let isComment = false;
Ergün Erdoğmuş . unresolved

Instead of duplicating the fallback logic here (returning a boolean) vs in `#getCommentTextAtCursor` (returning a string), using the new parser module here as well.

`getCommentText` should return undefined if it's not a comment, which we can use to determine isComment. This ensures the teaser only shows up if we can actually extract text.

Open in Gerrit

Related details

Attention is currently required from:
  • Samiya Caur
Submit Requirements:
    • requirement satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: devtools/devtools-frontend
    Gerrit-Branch: main
    Gerrit-Change-Id: Id29d161ccaf806d01bc7de31fce99dfa161d0395
    Gerrit-Change-Number: 7207065
    Gerrit-PatchSet: 6
    Gerrit-Owner: Samiya Caur <sam...@chromium.org>
    Gerrit-Reviewer: Ergün Erdoğmuş <erg...@chromium.org>
    Gerrit-Reviewer: Samiya Caur <sam...@chromium.org>
    Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
    Gerrit-CC: Devtools-frontend LUCI CQ <devtools-fro...@luci-project-accounts.iam.gserviceaccount.com>
    Gerrit-Attention: Samiya Caur <sam...@chromium.org>
    Gerrit-Comment-Date: Mon, 29 Dec 2025 12:02:48 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Samiya Caur (Gerrit)

    unread,
    5:03 AM (19 hours ago) 5:03 AM
    to Code Review Nudger, Devtools-frontend LUCI CQ, Ergün Erdoğmuş, devtools-rev...@chromium.org
    Attention needed from Ergün Erdoğmuş

    Samiya Caur voted and added 4 comments

    Votes added by Samiya Caur

    Commit-Queue+1

    4 comments

    Patchset-level comments
    File-level comment, Patchset 6:
    Ergün Erdoğmuş . resolved

    I have refined the implementation a bit with Jetski and here is the diff, and I think I quite liked it: https://paste.googleplex.com/6326754597797888. The only issue might be that we're not able to stub out ES modules so we might want to make `AiCodeGenerationParser` a class with a static method `getCommentText` that we can stub out in `AiCodeGenerationProvider` tests.

    Especially, testing this logic in isolation and keeping the implementation separate from the generation is quite cool.

    I have added some comments for that state, please give it a try and let me know what you think!

    ===

    We can add a dedicated unit test file `AiCodeGenerationParser.test.ts` for the new module. This should test edge cases (empty files, specific whitespace scenarios, unclosed comments) in isolation, while

    `AiCodeGenerationProvider.test.ts` can focus on the higher-level integration (triggering the AI generation) once `AiCodeGenerationParser`s `getCommentText` resolves to a prompt.

    Samiya Caur

    Thank you for reviewing! I think I have addressed all the comments and made the required changes.

    File front_end/ui/components/text_editor/AiCodeGenerationProvider.ts
    Line 38, Patchset 6:function getCommentNodeAtCursor(state: CodeMirror.EditorState, cursorPosition: number): CodeMirror.SyntaxNode|
    Ergün Erdoğmuş . resolved

    I think... this file is becoming quite large. Let's move all the comment parsing logic, including this function and the regex patterns, into a separate module named `AiCodeGenerationParser.ts`.

    Additionally, this node resolution is too strict. If a user types a space after a block comment (e.g. `/* ... */ |`), node.to will not match the cursor position. We can update the logic to be tolerant of trailing whitespace: if the strict check fails, look at the line up to the cursor, trim the end, and check if we are checking a block comment node at that 'effective' end.

    Samiya Caur

    Makes sense, updated the logic as per this.

    Line 262, Patchset 6: #getCommentTextAtCursor(cursorPosition: number): string|undefined {
    Ergün Erdoğmuş . resolved

    Let's refactor this method to use the new `AiCodeGenerationParser`. Inside the parser, we can break this logic down into smaller, helper functions for readability:

    • `resolveCommentNode(state, cursor)`
    • `extractBlockComment(state, node)`
    • `extractCommentText(state, node)`
    • `fallbackCommentCheck(state, cursor)`
    Samiya Caur

    Done

    Line 388, Patchset 6: let isComment = false;
    Ergün Erdoğmuş . resolved

    Instead of duplicating the fallback logic here (returning a boolean) vs in `#getCommentTextAtCursor` (returning a string), using the new parser module here as well.

    `getCommentText` should return undefined if it's not a comment, which we can use to determine isComment. This ensures the teaser only shows up if we can actually extract text.

    Samiya Caur

    Done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Ergün Erdoğmuş
    Submit Requirements:
      • requirement satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: devtools/devtools-frontend
      Gerrit-Branch: main
      Gerrit-Change-Id: Id29d161ccaf806d01bc7de31fce99dfa161d0395
      Gerrit-Change-Number: 7207065
      Gerrit-PatchSet: 7
      Gerrit-Owner: Samiya Caur <sam...@chromium.org>
      Gerrit-Reviewer: Ergün Erdoğmuş <erg...@chromium.org>
      Gerrit-Reviewer: Samiya Caur <sam...@chromium.org>
      Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
      Gerrit-CC: Devtools-frontend LUCI CQ <devtools-fro...@luci-project-accounts.iam.gserviceaccount.com>
      Gerrit-Attention: Ergün Erdoğmuş <erg...@chromium.org>
      Gerrit-Comment-Date: Tue, 30 Dec 2025 10:03:42 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      Comment-In-Reply-To: Ergün Erdoğmuş <erg...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Ergün Erdoğmuş (Gerrit)

      unread,
      6:55 AM (17 hours ago) 6:55 AM
      to Samiya Caur, Code Review Nudger, Devtools-frontend LUCI CQ, devtools-rev...@chromium.org
      Attention needed from Samiya Caur

      Ergün Erdoğmuş added 6 comments

      Patchset-level comments
      File-level comment, Patchset 8 (Latest):
      Ergün Erdoğmuş . resolved

      I have some more comments :)

      File front_end/ui/components/text_editor/AiCodeGenerationParser.test.ts
      Line 22, Patchset 8 (Latest): describe('findLastNonWhitespacePos', () => {
      Ergün Erdoğmuş . unresolved

      Since these methods are not in the public API of the module, I don't think we should test them specifically but rather we should test the public-facing API (`extractCommentText`) extensively to cover the cases where these helpers acted on. (e.g. it returns the correct comment text, when the cursor is at the end, after a tab...)

      File front_end/ui/components/text_editor/AiCodeGenerationParser.ts
      Line 9, Patchset 8 (Latest): static findLastNonWhitespacePos(state: CodeMirror.EditorState, cursorPosition: number): number {
      Ergün Erdoğmuş . unresolved

      Let's put the non public methods as a non static module methods and only mark the public methods as static methods (I expect only `extractCommentText` to be static, in this case)

      Line 14, Patchset 8 (Latest): const trimmedMatch = textBefore.match(/\S\s*$/);
      Ergün Erdoğmuş . unresolved

      I think we can implement this a bit more performantly by using:
      ```
      // Find the text before cursor
      const textBeforeCursor = line.text.substring(0, cursorPosition - line.from);
      // Calculate the effective cursor position for the last position of the comment text
      const effectiveEnd = line.from + textBeforeCursor.trimEnd().length;
      ```

      I'm a little afraid of running an expensive search on every keystroke once the code generation is enabled, it'd be great if you can take a look at the performance with throttling and see how it affects the writing experience.

      Line 53, Patchset 8 (Latest): let cleaned = rawText.replace(/^\/\*+\s*/, '').replace(/\s*\*+\/$/, '');
      Ergün Erdoğmuş . unresolved

      (nit): Let's move these regex definitions out of line so that it's easier to read what we're matching. Something like:
      ```
      const LINE_COMMENT_PATTERN = /^(?:\/\/|#)\s*/;
      const BLOCK_COMMENT_START_PATTERN = /^\/\*+\s*/;
      const BLOCK_COMMENT_END_PATTERN = /\s*\*+\/$/;
      const BLOCK_COMMENT_LINE_PREFIX_PATTERN = /^\s*\*\s?/;
      ```

      There might also be some little performance gains by creating the regex statically rather than dynamically here (though I also expect some optimizations on the V8 side for this).

      Line 92, Patchset 8 (Latest): return this.fallbackCommentCheck(state, cursorPosition);
      Ergün Erdoğmuş . unresolved

      I don't expect this `catch` block to be hit often, do you see cases where it happens? I think we can simplify the implementation by removing the try-catch block and the fallback handling (or if you're convinced that `CodeMirror` operations might throw, we can keep it but return undefined for the erroneous case).

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Samiya Caur
      Submit Requirements:
        • requirement satisfiedCode-Owners
        • requirement is not satisfiedCode-Review
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement is not satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: devtools/devtools-frontend
        Gerrit-Branch: main
        Gerrit-Change-Id: Id29d161ccaf806d01bc7de31fce99dfa161d0395
        Gerrit-Change-Number: 7207065
        Gerrit-PatchSet: 8
        Gerrit-Owner: Samiya Caur <sam...@chromium.org>
        Gerrit-Reviewer: Ergün Erdoğmuş <erg...@chromium.org>
        Gerrit-Reviewer: Samiya Caur <sam...@chromium.org>
        Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
        Gerrit-CC: Devtools-frontend LUCI CQ <devtools-fro...@luci-project-accounts.iam.gserviceaccount.com>
        Gerrit-Attention: Samiya Caur <sam...@chromium.org>
        Gerrit-Comment-Date: Tue, 30 Dec 2025 11:55:08 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Samiya Caur (Gerrit)

        unread,
        8:10 AM (15 hours ago) 8:10 AM
        to Code Review Nudger, Devtools-frontend LUCI CQ, Ergün Erdoğmuş, devtools-rev...@chromium.org
        Attention needed from Ergün Erdoğmuş

        Samiya Caur voted and added 5 comments

        Votes added by Samiya Caur

        Auto-Submit+1
        Commit-Queue+1

        5 comments

        File front_end/ui/components/text_editor/AiCodeGenerationParser.test.ts
        Line 22, Patchset 8: describe('findLastNonWhitespacePos', () => {
        Ergün Erdoğmuş . resolved

        Since these methods are not in the public API of the module, I don't think we should test them specifically but rather we should test the public-facing API (`extractCommentText`) extensively to cover the cases where these helpers acted on. (e.g. it returns the correct comment text, when the cursor is at the end, after a tab...)

        Samiya Caur

        Done

        File front_end/ui/components/text_editor/AiCodeGenerationParser.ts
        Line 9, Patchset 8: static findLastNonWhitespacePos(state: CodeMirror.EditorState, cursorPosition: number): number {
        Ergün Erdoğmuş . resolved

        Let's put the non public methods as a non static module methods and only mark the public methods as static methods (I expect only `extractCommentText` to be static, in this case)

        Samiya Caur

        Done

        Line 14, Patchset 8: const trimmedMatch = textBefore.match(/\S\s*$/);
        Ergün Erdoğmuş . resolved

        I think we can implement this a bit more performantly by using:
        ```
        // Find the text before cursor
        const textBeforeCursor = line.text.substring(0, cursorPosition - line.from);
        // Calculate the effective cursor position for the last position of the comment text
        const effectiveEnd = line.from + textBeforeCursor.trimEnd().length;
        ```

        I'm a little afraid of running an expensive search on every keystroke once the code generation is enabled, it'd be great if you can take a look at the performance with throttling and see how it affects the writing experience.

        Samiya Caur

        Ah you are right, updated

        Line 53, Patchset 8: let cleaned = rawText.replace(/^\/\*+\s*/, '').replace(/\s*\*+\/$/, '');
        Ergün Erdoğmuş . resolved

        (nit): Let's move these regex definitions out of line so that it's easier to read what we're matching. Something like:
        ```
        const LINE_COMMENT_PATTERN = /^(?:\/\/|#)\s*/;
        const BLOCK_COMMENT_START_PATTERN = /^\/\*+\s*/;
        const BLOCK_COMMENT_END_PATTERN = /\s*\*+\/$/;
        const BLOCK_COMMENT_LINE_PREFIX_PATTERN = /^\s*\*\s?/;
        ```

        There might also be some little performance gains by creating the regex statically rather than dynamically here (though I also expect some optimizations on the V8 side for this).

        Samiya Caur

        Done

        Line 92, Patchset 8: return this.fallbackCommentCheck(state, cursorPosition);
        Ergün Erdoğmuş . resolved

        I don't expect this `catch` block to be hit often, do you see cases where it happens? I think we can simplify the implementation by removing the try-catch block and the fallback handling (or if you're convinced that `CodeMirror` operations might throw, we can keep it but return undefined for the erroneous case).

        Samiya Caur

        Hm you are right, removed it

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Ergün Erdoğmuş
        Submit Requirements:
          • requirement satisfiedCode-Owners
          • requirement is not satisfiedCode-Review
          • requirement is not satisfiedReview-Enforcement
          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
          Gerrit-MessageType: comment
          Gerrit-Project: devtools/devtools-frontend
          Gerrit-Branch: main
          Gerrit-Change-Id: Id29d161ccaf806d01bc7de31fce99dfa161d0395
          Gerrit-Change-Number: 7207065
          Gerrit-PatchSet: 9
          Gerrit-Owner: Samiya Caur <sam...@chromium.org>
          Gerrit-Reviewer: Ergün Erdoğmuş <erg...@chromium.org>
          Gerrit-Reviewer: Samiya Caur <sam...@chromium.org>
          Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
          Gerrit-CC: Devtools-frontend LUCI CQ <devtools-fro...@luci-project-accounts.iam.gserviceaccount.com>
          Gerrit-Attention: Ergün Erdoğmuş <erg...@chromium.org>
          Gerrit-Comment-Date: Tue, 30 Dec 2025 13:10:43 +0000
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy

          Ergün Erdoğmuş (Gerrit)

          unread,
          8:13 AM (15 hours ago) 8:13 AM
          to Samiya Caur, Code Review Nudger, Devtools-frontend LUCI CQ, devtools-rev...@chromium.org
          Attention needed from Samiya Caur

          Ergün Erdoğmuş voted and added 1 comment

          Votes added by Ergün Erdoğmuş

          Code-Review+1
          Commit-Queue+1

          1 comment

          Patchset-level comments
          File-level comment, Patchset 9 (Latest):
          Ergün Erdoğmuş . resolved

          yay, thank you for bearing with me!

          Open in Gerrit

          Related details

          Attention is currently required from:
          • Samiya Caur
          Submit Requirements:
          • requirement satisfiedCode-Owners
          • requirement satisfiedCode-Review
          • requirement satisfiedReview-Enforcement
          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
          Gerrit-MessageType: comment
          Gerrit-Project: devtools/devtools-frontend
          Gerrit-Branch: main
          Gerrit-Change-Id: Id29d161ccaf806d01bc7de31fce99dfa161d0395
          Gerrit-Change-Number: 7207065
          Gerrit-PatchSet: 9
          Gerrit-Owner: Samiya Caur <sam...@chromium.org>
          Gerrit-Reviewer: Ergün Erdoğmuş <erg...@chromium.org>
          Gerrit-Reviewer: Samiya Caur <sam...@chromium.org>
          Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
          Gerrit-CC: Devtools-frontend LUCI CQ <devtools-fro...@luci-project-accounts.iam.gserviceaccount.com>
          Gerrit-Attention: Samiya Caur <sam...@chromium.org>
          Gerrit-Comment-Date: Tue, 30 Dec 2025 13:13:34 +0000
          Gerrit-HasComments: Yes
          Gerrit-Has-Labels: Yes
          satisfied_requirement
          open
          diffy

          Samiya Caur (Gerrit)

          unread,
          8:33 AM (15 hours ago) 8:33 AM
          to Ergün Erdoğmuş, Code Review Nudger, Devtools-frontend LUCI CQ, devtools-rev...@chromium.org

          Samiya Caur voted Commit-Queue+2

          Commit-Queue+2
          Open in Gerrit

          Related details

          Attention set is empty
          Submit Requirements:
          • requirement satisfiedCode-Owners
          • requirement satisfiedCode-Review
          • requirement satisfiedReview-Enforcement
          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
          Gerrit-MessageType: comment
          Gerrit-Project: devtools/devtools-frontend
          Gerrit-Branch: main
          Gerrit-Change-Id: Id29d161ccaf806d01bc7de31fce99dfa161d0395
          Gerrit-Change-Number: 7207065
          Gerrit-PatchSet: 9
          Gerrit-Owner: Samiya Caur <sam...@chromium.org>
          Gerrit-Reviewer: Ergün Erdoğmuş <erg...@chromium.org>
          Gerrit-Reviewer: Samiya Caur <sam...@chromium.org>
          Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
          Gerrit-CC: Devtools-frontend LUCI CQ <devtools-fro...@luci-project-accounts.iam.gserviceaccount.com>
          Gerrit-Comment-Date: Tue, 30 Dec 2025 13:33:14 +0000
          Gerrit-HasComments: No
          Gerrit-Has-Labels: Yes
          satisfied_requirement
          open
          diffy

          Devtools-frontend LUCI CQ (Gerrit)

          unread,
          8:38 AM (15 hours ago) 8:38 AM
          to Samiya Caur, Ergün Erdoğmuş, Code Review Nudger, devtools-rev...@chromium.org

          Devtools-frontend LUCI CQ submitted the change

          Change information

          Commit message:
          Handle inline and block comments for code generation
          Bug: 465405442
          Change-Id: Id29d161ccaf806d01bc7de31fce99dfa161d0395
          Reviewed-by: Ergün Erdoğmuş <erg...@chromium.org>
          Commit-Queue: Ergün Erdoğmuş <erg...@chromium.org>
          Auto-Submit: Samiya Caur <sam...@chromium.org>
          Commit-Queue: Samiya Caur <sam...@chromium.org>
          Files:
          • M config/gni/devtools_grd_files.gni
          • A front_end/ui/components/text_editor/AiCodeGenerationParser.test.ts
          • A front_end/ui/components/text_editor/AiCodeGenerationParser.ts
          • M front_end/ui/components/text_editor/AiCodeGenerationProvider.test.ts
          • M front_end/ui/components/text_editor/AiCodeGenerationProvider.ts
          • M front_end/ui/components/text_editor/BUILD.gn
          • M front_end/ui/components/text_editor/text_editor.ts
          Change size: M
          Delta: 7 files changed, 226 insertions(+), 23 deletions(-)
          Branch: refs/heads/main
          Submit Requirements:
          • requirement satisfiedCode-Review: +1 by Ergün Erdoğmuş
          Open in Gerrit
          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
          Gerrit-MessageType: merged
          Gerrit-Project: devtools/devtools-frontend
          Gerrit-Branch: main
          Gerrit-Change-Id: Id29d161ccaf806d01bc7de31fce99dfa161d0395
          Gerrit-Change-Number: 7207065
          Gerrit-PatchSet: 10
          Gerrit-Owner: Samiya Caur <sam...@chromium.org>
          Gerrit-Reviewer: Devtools-frontend LUCI CQ <devtools-fro...@luci-project-accounts.iam.gserviceaccount.com>
          open
          diffy
          satisfied_requirement
          Reply all
          Reply to author
          Forward
          0 new messages