[vscode-go] extension: add debug menu for var show in doc

15 views
Skip to first unread message

Hongxiang Jiang (Gerrit)

unread,
Jul 30, 2025, 10:40:25 AMJul 30
to Gerrit Bot, goph...@pubsubhelper.golang.org, Madeline Kalil, Go LUCI, Ethan Reesor, Maxim Kern, Gopher Robot, golang-co...@googlegroups.com
Attention needed from Ethan Reesor and Maxim Kern

Hongxiang Jiang added 1 comment

Patchset-level comments
File-level comment, Patchset 3:
Ethan Reesor . resolved

From CI: gopls settings section in package.json needs update. To update the settings, run "go run tools/generate.go -w -gopls".

Maxim Kern

I runed the generator, now there are many more changes. Is this ok? I don't fully understand its purpose and results.

Hongxiang Jiang

Probably not. Let me try to figure this out. Normally it's the gopls version wrong running in your workstation.

I will also review the change. Thanks for the contribution.

Open in Gerrit

Related details

Attention is currently required from:
  • Ethan Reesor
  • Maxim Kern
Submit Requirements:
  • requirement is not satisfiedCode-Review
  • requirement satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
  • requirement is not satisfiedTryBots-Pass
  • requirement is not satisfiedkokoro-CI-Passes
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: vscode-go
Gerrit-Branch: master
Gerrit-Change-Id: I79823f8d424593209da7c1e2bc4f13dab094975a
Gerrit-Change-Number: 690675
Gerrit-PatchSet: 7
Gerrit-Owner: Gerrit Bot <letsus...@gmail.com>
Gerrit-Reviewer: Ethan Reesor <ethan....@gmail.com>
Gerrit-Reviewer: Hongxiang Jiang <hxj...@golang.org>
Gerrit-CC: Gopher Robot <go...@golang.org>
Gerrit-CC: Madeline Kalil <mka...@google.com>
Gerrit-CC: Maxim Kern <ctaj...@gmail.com>
Gerrit-Attention: Ethan Reesor <ethan....@gmail.com>
Gerrit-Attention: Maxim Kern <ctaj...@gmail.com>
Gerrit-Comment-Date: Wed, 30 Jul 2025 14:40:21 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Ethan Reesor <ethan....@gmail.com>
Comment-In-Reply-To: Maxim Kern <ctaj...@gmail.com>
unsatisfied_requirement
satisfied_requirement
open
diffy

Hongxiang Jiang (Gerrit)

unread,
Aug 6, 2025, 3:43:32 PMAug 6
to Gerrit Bot, goph...@pubsubhelper.golang.org, Madeline Kalil, Go LUCI, Ethan Reesor, Maxim Kern, Gopher Robot, golang-co...@googlegroups.com
Attention needed from Ethan Reesor and Maxim Kern

Hongxiang Jiang added 8 comments

Patchset-level comments
File-level comment, Patchset 3:
Ethan Reesor . unresolved

From CI: gopls settings section in package.json needs update. To update the settings, run "go run tools/generate.go -w -gopls".

Maxim Kern

I runed the generator, now there are many more changes. Is this ok? I don't fully understand its purpose and results.

Hongxiang Jiang

Probably not. Let me try to figure this out. Normally it's the gopls version wrong running in your workstation.

I will also review the change. Thanks for the contribution.

Hongxiang Jiang

Try

```
go install golang.org/x/tools/go...@v0.20.0

// verify the go version is 0.20.0
gopls version

// run generate
cd extension


go run tools/generate.go -w -gopls

```

The generator use the gopls local version, so maybe the gopls version in your env is 0.19 or earlier resulting in this big change in package.json.

File-level comment, Patchset 7 (Latest):
Hongxiang Jiang . resolved

Thank you for your contribution.

Commit Message
Line 7, Patchset 7 (Latest):extension: add debug menu for var show in doc
Hongxiang Jiang . unresolved

can you also add this change to.

`CHANGELOG.md`

File extension/package.json
Line 216, Patchset 7 (Latest): "command": "go.debug.openVariableAsDoc",
"title": "Open in new Document"
},
Hongxiang Jiang . unresolved

could you create a description for this command?

also follow the pattern of title `Go: ...`

the prefix `Go:` allow user to clearly identify this command is for Go debug session not for others.

File extension/src/goDebugCommands.ts
Line 1, Patchset 7 (Latest):import * as vscode from 'vscode';
Hongxiang Jiang . unresolved
Could you add the copyright header
```
/*---------------------------------------------------------
* Copyright 2025 The Go Authors. All rights reserved.
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------*/
```
Line 57, Patchset 7 (Latest):
interface VariableRef {
sessionId: string;
container: Container;
variable: Variable;
}

interface Container {
name: string;
variablesReference: number;
expensive: boolean;
}

interface Variable {
name: string;
value: string;
evaluateName: string;
variablesReference: number;
}
Hongxiang Jiang . unresolved

It's also new to me recently that vscode try passing the context information to the extension based on where the command is being called.

There isnt a pre-defined type we can just use in the input parameter (not I can find from Google or LLM). So can we document it here saying this is the type of information vscode will be passing to the call back function with pointer to

https://code.visualstudio.com/api/references/contribution-points#contributes.menus

Line 87, Patchset 7 (Latest): return JSON.parse(raw);
Hongxiang Jiang . unresolved

In my local experiment, the yaml and a random string both succeed and returns.

Line 90, Patchset 7 (Latest): raw = raw.slice(1, -1);
Hongxiang Jiang . unresolved

I'm not very sure whether this is intentional, but if I have a variable that is type `*main.config` and it's value is nil, I will end up with opening a file with

```
main.config ni
```

the `*` and the `l` is taken away.

same if I have a variable of type "error".

Open in Gerrit

Related details

Attention is currently required from:
  • Ethan Reesor
  • Maxim Kern
Submit Requirements:
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    • requirement is not satisfiedTryBots-Pass
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: vscode-go
    Gerrit-Branch: master
    Gerrit-Change-Id: I79823f8d424593209da7c1e2bc4f13dab094975a
    Gerrit-Change-Number: 690675
    Gerrit-PatchSet: 7
    Gerrit-Owner: Gerrit Bot <letsus...@gmail.com>
    Gerrit-Reviewer: Ethan Reesor <ethan....@gmail.com>
    Gerrit-Reviewer: Hongxiang Jiang <hxj...@golang.org>
    Gerrit-CC: Gopher Robot <go...@golang.org>
    Gerrit-CC: Madeline Kalil <mka...@google.com>
    Gerrit-CC: Maxim Kern <ctaj...@gmail.com>
    Gerrit-Attention: Ethan Reesor <ethan....@gmail.com>
    Gerrit-Attention: Maxim Kern <ctaj...@gmail.com>
    Gerrit-Comment-Date: Wed, 06 Aug 2025 19:43:29 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Hongxiang Jiang <hxj...@golang.org>
    unsatisfied_requirement
    open
    diffy

    Gerrit Bot (Gerrit)

    unread,
    Aug 10, 2025, 11:04:44 AMAug 10
    to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com
    Attention needed from Ethan Reesor, Hongxiang Jiang and Maxim Kern

    Gerrit Bot uploaded new patchset

    Gerrit Bot uploaded patch set #8 to this change.
    Open in Gerrit

    Related details

    Attention is currently required from:
    • Ethan Reesor
    • Hongxiang Jiang
    • Maxim Kern
    Submit Requirements:
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    • requirement is not satisfiedTryBots-Pass
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: newpatchset
    Gerrit-Project: vscode-go
    Gerrit-Branch: master
    Gerrit-Change-Id: I79823f8d424593209da7c1e2bc4f13dab094975a
    Gerrit-Change-Number: 690675
    Gerrit-PatchSet: 8
    Gerrit-Owner: Gerrit Bot <letsus...@gmail.com>
    Gerrit-Reviewer: Ethan Reesor <ethan....@gmail.com>
    Gerrit-Reviewer: Hongxiang Jiang <hxj...@golang.org>
    Gerrit-CC: Gopher Robot <go...@golang.org>
    Gerrit-CC: Madeline Kalil <mka...@google.com>
    Gerrit-CC: Maxim Kern <ctaj...@gmail.com>
    Gerrit-Attention: Hongxiang Jiang <hxj...@golang.org>
    unsatisfied_requirement
    open
    diffy

    Gerrit Bot (Gerrit)

    unread,
    Aug 10, 2025, 11:12:11 AMAug 10
    to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com
    Attention needed from Ethan Reesor, Hongxiang Jiang and Maxim Kern

    Gerrit Bot uploaded new patchset

    Gerrit Bot uploaded patch set #9 to this change.
    Open in Gerrit

    Related details

    Attention is currently required from:
    • Ethan Reesor
    • Hongxiang Jiang
    • Maxim Kern
    Submit Requirements:
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    • requirement is not satisfiedTryBots-Pass
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: newpatchset
    Gerrit-Project: vscode-go
    Gerrit-Branch: master
    Gerrit-Change-Id: I79823f8d424593209da7c1e2bc4f13dab094975a
    Gerrit-Change-Number: 690675
    Gerrit-PatchSet: 9
    unsatisfied_requirement
    open
    diffy

    Gerrit Bot (Gerrit)

    unread,
    Aug 10, 2025, 11:19:45 AMAug 10
    to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com
    Attention needed from Ethan Reesor, Hongxiang Jiang and Maxim Kern

    Gerrit Bot uploaded new patchset

    Gerrit Bot uploaded patch set #10 to this change.
    Open in Gerrit

    Related details

    Attention is currently required from:
    • Ethan Reesor
    • Hongxiang Jiang
    • Maxim Kern
    Submit Requirements:
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    • requirement is not satisfiedTryBots-Pass
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: newpatchset
    Gerrit-Project: vscode-go
    Gerrit-Branch: master
    Gerrit-Change-Id: I79823f8d424593209da7c1e2bc4f13dab094975a
    Gerrit-Change-Number: 690675
    Gerrit-PatchSet: 10
    unsatisfied_requirement
    open
    diffy

    Maxim Kern (Gerrit)

    unread,
    Aug 10, 2025, 11:42:04 AMAug 10
    to Gerrit Bot, goph...@pubsubhelper.golang.org, Madeline Kalil, Go LUCI, Hongxiang Jiang, Ethan Reesor, Gopher Robot, golang-co...@googlegroups.com
    Attention needed from Ethan Reesor and Hongxiang Jiang

    Maxim Kern added 7 comments

    Patchset-level comments
    File-level comment, Patchset 3:
    Ethan Reesor . resolved

    From CI: gopls settings section in package.json needs update. To update the settings, run "go run tools/generate.go -w -gopls".

    Maxim Kern

    I runed the generator, now there are many more changes. Is this ok? I don't fully understand its purpose and results.

    Hongxiang Jiang

    Probably not. Let me try to figure this out. Normally it's the gopls version wrong running in your workstation.

    I will also review the change. Thanks for the contribution.

    Hongxiang Jiang

    Try

    ```
    go install golang.org/x/tools/go...@v0.20.0

    // verify the go version is 0.20.0
    gopls version

    // run generate
    cd extension
    go run tools/generate.go -w -gopls
    ```

    The generator use the gopls local version, so maybe the gopls version in your env is 0.19 or earlier resulting in this big change in package.json.

    Maxim Kern

    It helped! Thanks!

    Commit Message
    Line 7, Patchset 7:extension: add debug menu for var show in doc
    Hongxiang Jiang . resolved

    can you also add this change to.

    `CHANGELOG.md`

    Maxim Kern

    Done

    File extension/package.json
    Line 216, Patchset 7: "command": "go.debug.openVariableAsDoc",

    "title": "Open in new Document"
    },
    Hongxiang Jiang . resolved

    could you create a description for this command?

    also follow the pattern of title `Go: ...`

    the prefix `Go:` allow user to clearly identify this command is for Go debug session not for others.

    Maxim Kern
    File extension/src/goDebugCommands.ts
    Line 1, Patchset 7:import * as vscode from 'vscode';
    Hongxiang Jiang . resolved
    Could you add the copyright header
    ```
    /*---------------------------------------------------------
    * Copyright 2025 The Go Authors. All rights reserved.
    * Licensed under the MIT License. See LICENSE in the project root for license information.
    *--------------------------------------------------------*/
    ```
    Maxim Kern

    Done


    interface VariableRef {
    sessionId: string;
    container: Container;
    variable: Variable;
    }

    interface Container {
    name: string;
    variablesReference: number;
    expensive: boolean;
    }

    interface Variable {
    name: string;
    value: string;
    evaluateName: string;
    variablesReference: number;
    }
    Hongxiang Jiang . resolved

    It's also new to me recently that vscode try passing the context information to the extension based on where the command is being called.

    There isnt a pre-defined type we can just use in the input parameter (not I can find from Google or LLM). So can we document it here saying this is the type of information vscode will be passing to the call back function with pointer to

    https://code.visualstudio.com/api/references/contribution-points#contributes.menus

    Maxim Kern

    Done

    Line 87, Patchset 7: return JSON.parse(raw);
    Hongxiang Jiang . resolved

    In my local experiment, the yaml and a random string both succeed and returns.

    Maxim Kern

    I simplified the logic a bit and now it parses json just in case, and if it failed I go through the replace. Also i did some research about how it works underhood the Delve and used read memory DAP protocol part that requires some additional work (PR in Delve is ready). So i propose to wait for it. What do you think? Current code is for new features of Delve, but we can read big strings after it.

    Line 90, Patchset 7: raw = raw.slice(1, -1);
    Hongxiang Jiang . resolved

    I'm not very sure whether this is intentional, but if I have a variable that is type `*main.config` and it's value is nil, I will end up with opening a file with

    ```
    main.config ni
    ```

    the `*` and the `l` is taken away.

    same if I have a variable of type "error".

    Maxim Kern

    Done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Ethan Reesor
    • Hongxiang Jiang
    Submit Requirements:
      • requirement is not satisfiedCode-Review
      • requirement satisfiedNo-Unresolved-Comments
      • requirement is not satisfiedReview-Enforcement
      • requirement is not satisfiedTryBots-Pass
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: vscode-go
      Gerrit-Branch: master
      Gerrit-Change-Id: I79823f8d424593209da7c1e2bc4f13dab094975a
      Gerrit-Change-Number: 690675
      Gerrit-PatchSet: 9
      Gerrit-Owner: Gerrit Bot <letsus...@gmail.com>
      Gerrit-Reviewer: Ethan Reesor <ethan....@gmail.com>
      Gerrit-Reviewer: Hongxiang Jiang <hxj...@golang.org>
      Gerrit-CC: Gopher Robot <go...@golang.org>
      Gerrit-CC: Madeline Kalil <mka...@google.com>
      Gerrit-CC: Maxim Kern <ctaj...@gmail.com>
      Gerrit-Attention: Hongxiang Jiang <hxj...@golang.org>
      Gerrit-Attention: Ethan Reesor <ethan....@gmail.com>
      Gerrit-Comment-Date: Sun, 10 Aug 2025 15:41:56 +0000
      unsatisfied_requirement
      satisfied_requirement
      open
      diffy

      Gerrit Bot (Gerrit)

      unread,
      Aug 10, 2025, 11:43:30 AMAug 10
      to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com
      Attention needed from Ethan Reesor and Hongxiang Jiang

      Gerrit Bot uploaded new patchset

      Gerrit Bot uploaded patch set #11 to this change.
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Ethan Reesor
      • Hongxiang Jiang
      Submit Requirements:
      • requirement is not satisfiedCode-Review
      • requirement satisfiedNo-Unresolved-Comments
      • requirement is not satisfiedReview-Enforcement
      • requirement is not satisfiedTryBots-Pass
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: newpatchset
      Gerrit-Project: vscode-go
      Gerrit-Branch: master
      Gerrit-Change-Id: I79823f8d424593209da7c1e2bc4f13dab094975a
      Gerrit-Change-Number: 690675
      Gerrit-PatchSet: 11
      unsatisfied_requirement
      satisfied_requirement
      open
      diffy

      Hongxiang Jiang (Gerrit)

      unread,
      Aug 12, 2025, 4:55:22 PMAug 12
      to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com

      Hongxiang Jiang has uploaded the change for review

      Commit message

      extension: add debug menu for var show in doc
      HXJIANG: debug for the package.json change
      Change-Id: I7e930604adfd2b7f93af3d62229f7726bff69381

      Change diff

      diff --git a/CHANGELOG.md b/CHANGELOG.md
      index c8d70ae..9b183fe 100644
      --- a/CHANGELOG.md
      +++ b/CHANGELOG.md
      @@ -5,6 +5,8 @@

      ## Unreleased

      +Added menu in a debugger that will show variable in a new document with respect to special chars like `\r\n\t`
      +
      ## v0.49.0 (prerelease)

      Date: 2025-07-07
      diff --git a/docs/commands.md b/docs/commands.md
      index c13f5ab..271faa2 100644
      --- a/docs/commands.md
      +++ b/docs/commands.md
      @@ -23,6 +23,10 @@

      <!-- Everything below this line is generated. DO NOT EDIT. -->

      +### `Go: Open in new Document`
      +
      +Open selected variable in a new document.
      +
      ### `Go: Current GOPATH`

      See the currently set GOPATH.
      diff --git a/extension/package.json b/extension/package.json
      index f93e9ea..b090b95 100644
      --- a/extension/package.json
      +++ b/extension/package.json
      @@ -213,6 +213,11 @@
      },
      "commands": [
      {
      + "command": "go.debug.openVariableAsDoc",
      + "title": "Go: Open in new Document",
      + "description": "Open selected variable in a new document."
      + },
      + {
      "command": "go.gopath",
      "title": "Go: Current GOPATH",
      "description": "See the currently set GOPATH."
      @@ -3487,6 +3492,10 @@
      {
      "command": "go.explorer.open",
      "when": "false"
      + },
      + {
      + "command": "go.debug.openVariableAsDoc",
      + "when": "false"
      }
      ],
      "debug/callstack/context": [
      @@ -3495,6 +3504,13 @@
      "when": "debugType == 'go' && callStackItemType == 'stackFrame' || (callStackItemType == 'thread' && callStackItemStopped)"
      }
      ],
      + "debug/variables/context": [
      + {
      + "command": "go.debug.openVariableAsDoc",
      + "when": "debugType=='go'",
      + "group": "navigation"
      + }
      + ],
      "editor/context": [
      {
      "when": "editorTextFocus && config.go.editorContextMenuCommands.toggleTestFile && resourceLangId == go",
      diff --git a/extension/src/goDebugCommands.ts b/extension/src/goDebugCommands.ts
      new file mode 100644
      index 0000000..19b7221
      --- /dev/null
      +++ b/extension/src/goDebugCommands.ts
      @@ -0,0 +1,139 @@
      +/*---------------------------------------------------------
      + * Copyright (C) Microsoft Corporation. All rights reserved.
      + * Licensed under the MIT License. See LICENSE in the project root for license information.
      + *--------------------------------------------------------*/
      +
      +import * as vscode from 'vscode';
      +import { TextDecoder } from 'util';
      +
      +// Track sessions since vscode doesn't provide a list of them.
      +const sessions = new Map<string, vscode.DebugSession>();
      +vscode.debug.onDidStartDebugSession((s) => sessions.set(s.id, s));
      +vscode.debug.onDidTerminateDebugSession((s) => sessions.delete(s.id));
      +
      +/**
      + * Registers commands to improve the debugging experience for Go.
      + *
      + * Currently, it adds a command to open a variable in a new text document.
      + */
      +export function registerGoDebugCommands(ctx: vscode.ExtensionContext) {
      + class VariableContentProvider implements vscode.TextDocumentContentProvider {
      + static uriForRef(ref: VariableRef) {
      + return vscode.Uri.from({
      + scheme: 'go-debug-variable',
      + authority: `${ref.container.variablesReference}@${ref.sessionId}`,
      + path: `/${ref.variable.name}`
      + });
      + }
      +
      + async provideTextDocumentContent(uri: vscode.Uri): Promise<string> {
      + const name = uri.path.replace(/^\//, '');
      + const [container, sessionId] = uri.authority.split('@', 2);
      + if (!container || !sessionId) {
      + throw new Error('Invalid URI');
      + }
      +
      + const session = sessions.get(sessionId);
      + if (!session) return 'Debug session has been terminated';
      +
      + const { variables } = await session.customRequest('variables', {
      + variablesReference: parseInt(container, 10)
      + }) as { variables: Variable[] };
      +
      + const v = variables.find(v => v.name === name);
      + if (!v) return `Cannot resolve variable ${name}`;
      +
      + if (!v.memoryReference) {
      + const { result } = await session.customRequest('evaluate', {
      + expression: v.evaluateName,
      + context: 'clipboard'
      + }) as { result: string };
      +
      + v.value = result ?? v.value;
      +
      + return parseVariable(v);
      + }
      +
      + const chunk = 1 << 14;
      + let offset = 0;
      + let full: Uint8Array[] = [];
      +
      + while (true) {
      + const resp = await session.customRequest('readMemory', {
      + memoryReference: v.memoryReference,
      + offset,
      + count: chunk
      + }) as { address: string; data: string; unreadableBytes: number };
      +
      + if (!resp.data) break;
      + full.push(Buffer.from(resp.data, 'base64'));
      +
      + if (resp.unreadableBytes === 0) break;
      + offset += chunk;
      + }
      +
      + const allBytes = Buffer.concat(full);
      +
      + return new TextDecoder('utf-8').decode(allBytes);
      + }
      + }
      +
      + ctx.subscriptions.push(
      + vscode.workspace.registerTextDocumentContentProvider('go-debug-variable', new VariableContentProvider())
      + );
      +
      + ctx.subscriptions.push(
      + vscode.commands.registerCommand('go.debug.openVariableAsDoc', async (ref: VariableRef) => {
      + const uri = VariableContentProvider.uriForRef(ref);
      + const doc = await vscode.workspace.openTextDocument(uri);
      + await vscode.window.showTextDocument(doc);
      + })
      + );
      +
      + /**
      + * A reference to a variable, used to pass data between commands.
      + */
      + interface VariableRef {
      + sessionId: string;
      + container: Container;
      + variable: Variable;
      + }
      +
      + /**
      + * A container for variables, used to pass data between commands.
      + */
      + interface Container {
      + name: string;
      + variablesReference: number;
      + expensive: boolean;
      + }
      +
      + /**
      + * A variable, used to pass data between commands.
      + */
      + interface Variable {
      + name: string;
      + value: string;
      + evaluateName: string;
      + variablesReference: number;
      + memoryReference?: string;
      + }
      +
      + const escapeCodes: Record<string, string> = {
      + r: '\r',
      + n: '\n',
      + t: '\t'
      + };
      +
      + /**
      + * Parses a variable value, unescaping special characters.
      + */
      + function parseVariable(variable: Variable) {
      + let raw = variable.value.trim();
      + try {
      + return JSON.parse(raw);
      + } catch (_) {
      + return raw.replace(/\\[nrt\\"'`]/, (_, s) => (s in escapeCodes ? escapeCodes[s] : s));
      + }
      + }
      +}
      diff --git a/extension/src/goDebugConfiguration.ts b/extension/src/goDebugConfiguration.ts
      index a1de509..f221984 100644
      --- a/extension/src/goDebugConfiguration.ts
      +++ b/extension/src/goDebugConfiguration.ts
      @@ -34,6 +34,7 @@
      import { createRegisterCommand } from './commands';
      import { GoExtensionContext } from './context';
      import { spawn } from 'child_process';
      +import { registerGoDebugCommands } from './goDebugCommands';

      let dlvDAPVersionChecked = false;

      @@ -45,6 +46,7 @@
      const registerCommand = createRegisterCommand(ctx, goCtx);
      registerCommand('go.debug.pickProcess', () => pickProcess);
      registerCommand('go.debug.pickGoProcess', () => pickGoProcess);
      + registerGoDebugCommands(ctx);
      }

      constructor(private defaultDebugAdapterType: string = 'go') {}

      Change information

      Files:
      • M CHANGELOG.md
      • M docs/commands.md
      • M extension/package.json
      • A extension/src/goDebugCommands.ts
      • M extension/src/goDebugConfiguration.ts
      Change size: M
      Delta: 5 files changed, 163 insertions(+), 0 deletions(-)
      Open in Gerrit

      Related details

      Attention set is empty
      Submit Requirements:
      • requirement is not satisfiedCode-Review
      • requirement satisfiedNo-Unresolved-Comments
      • requirement is not satisfiedReview-Enforcement
      • requirement is not satisfiedTryBots-Pass
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: newchange
      Gerrit-Project: vscode-go
      Gerrit-Branch: master
      Gerrit-Change-Id: I7e930604adfd2b7f93af3d62229f7726bff69381
      Gerrit-Change-Number: 695396
      Gerrit-PatchSet: 1
      Gerrit-Owner: Hongxiang Jiang <hxj...@golang.org>
      unsatisfied_requirement
      satisfied_requirement
      open
      diffy

      Hongxiang Jiang (Gerrit)

      unread,
      Aug 12, 2025, 4:55:48 PMAug 12
      to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com

      Hongxiang Jiang abandoned this change

      Related details

      Attention set is empty
      Submit Requirements:
      • requirement is not satisfiedCode-Review
      • requirement satisfiedNo-Unresolved-Comments
      • requirement is not satisfiedReview-Enforcement
      • requirement is not satisfiedTryBots-Pass
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: abandon
      unsatisfied_requirement
      satisfied_requirement
      open
      diffy

      Hongxiang Jiang (Gerrit)

      unread,
      Aug 12, 2025, 5:01:10 PMAug 12
      to Gerrit Bot, goph...@pubsubhelper.golang.org, Madeline Kalil, Go LUCI, Ethan Reesor, Maxim Kern, Gopher Robot, golang-co...@googlegroups.com
      Attention needed from Ethan Reesor

      Hongxiang Jiang voted and added 3 comments

      Votes added by Hongxiang Jiang

      Commit-Queue+1

      3 comments

      Patchset-level comments
      File-level comment, Patchset 3:
      Ethan Reesor . unresolved

      From CI: gopls settings section in package.json needs update. To update the settings, run "go run tools/generate.go -w -gopls".

      Maxim Kern

      I runed the generator, now there are many more changes. Is this ok? I don't fully understand its purpose and results.

      Hongxiang Jiang

      Probably not. Let me try to figure this out. Normally it's the gopls version wrong running in your workstation.

      I will also review the change. Thanks for the contribution.

      Hongxiang Jiang

      Try

      ```
      go install golang.org/x/tools/go...@v0.20.0

      // verify the go version is 0.20.0
      gopls version

      // run generate
      cd extension
      go run tools/generate.go -w -gopls
      ```

      The generator use the gopls local version, so maybe the gopls version in your env is 0.19 or earlier resulting in this big change in package.json.

      Maxim Kern

      It helped! Thanks!

      Hongxiang Jiang

      There are still unexpected changes in package.json.

      I think you just need a rebase to make it correct. Try to sync your commit to the head of master branch.

      Rebase and re-run the steps above.

      I tried it. https://go-review.git.corp.google.com/c/vscode-go/+/695396

      File-level comment, Patchset 11 (Latest):
      Hongxiang Jiang . unresolved

      There are some style error showing up in my editor, please also resolve those. I think the presubmit will fail. I can trigger a test run.

      Like

      ```
      'full' is never reassigned. Use 'const' instead
      Unexpected constant condition.
      'raw' is never reassigned. Use 'const' instead.eslintprefer-const
      ```

      File extension/src/goDebugCommands.ts
      Line 87, Patchset 7: return JSON.parse(raw);
      Hongxiang Jiang . unresolved

      In my local experiment, the yaml and a random string both succeed and returns.

      Maxim Kern

      I simplified the logic a bit and now it parses json just in case, and if it failed I go through the replace. Also i did some research about how it works underhood the Delve and used read memory DAP protocol part that requires some additional work (PR in Delve is ready). So i propose to wait for it. What do you think? Current code is for new features of Delve, but we can read big strings after it.

      Hongxiang Jiang

      Sure. Could you link the PR to delv?

      Most of the CL looks good to me. Need @ethan....@gmail.com to take another look at the recent change.

      We might need to have version aware logic, or a capability aware logic to coordinate with the delv.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Ethan Reesor
      Submit Requirements:
        • requirement is not satisfiedCode-Review
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement is not satisfiedReview-Enforcement
        • requirement is not satisfiedTryBots-Pass
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: vscode-go
        Gerrit-Branch: master
        Gerrit-Change-Id: I79823f8d424593209da7c1e2bc4f13dab094975a
        Gerrit-Change-Number: 690675
        Gerrit-PatchSet: 11
        Gerrit-Owner: Gerrit Bot <letsus...@gmail.com>
        Gerrit-Reviewer: Ethan Reesor <ethan....@gmail.com>
        Gerrit-Reviewer: Hongxiang Jiang <hxj...@golang.org>
        Gerrit-CC: Gopher Robot <go...@golang.org>
        Gerrit-CC: Madeline Kalil <mka...@google.com>
        Gerrit-CC: Maxim Kern <ctaj...@gmail.com>
        Gerrit-Attention: Ethan Reesor <ethan....@gmail.com>
        Gerrit-Comment-Date: Tue, 12 Aug 2025 21:01:06 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: Yes
        unsatisfied_requirement
        open
        diffy

        Maxim Kern (Gerrit)

        unread,
        Aug 12, 2025, 7:11:27 PMAug 12
        to Gerrit Bot, goph...@pubsubhelper.golang.org, Go LUCI, Hongxiang Jiang, Madeline Kalil, Ethan Reesor, Gopher Robot, golang-co...@googlegroups.com
        Attention needed from Ethan Reesor and Hongxiang Jiang

        Maxim Kern added 1 comment

        File extension/src/goDebugCommands.ts
        Line 87, Patchset 7: return JSON.parse(raw);
        Hongxiang Jiang . resolved

        In my local experiment, the yaml and a random string both succeed and returns.

        Maxim Kern

        I simplified the logic a bit and now it parses json just in case, and if it failed I go through the replace. Also i did some research about how it works underhood the Delve and used read memory DAP protocol part that requires some additional work (PR in Delve is ready). So i propose to wait for it. What do you think? Current code is for new features of Delve, but we can read big strings after it.

        Hongxiang Jiang

        Sure. Could you link the PR to delv?

        Most of the CL looks good to me. Need @ethan....@gmail.com to take another look at the recent change.

        We might need to have version aware logic, or a capability aware logic to coordinate with the delv.

        Maxim Kern

        Of course, PR in Delve https://github.com/go-delve/delve/pull/4083 with small demo of what i'm trying to achieve.

        Actually, it looks like PR in vscode-go in it's current state is compatible with current version of Delve, because of this https://github.com/golang/vscode-go/pull/3818/files#diff-ec4ea7b9d627c035b805356e9a923aa1d2045ce8892a1755891b7b76bdbaf1d6R46. And when Delve PR will be merged (and also google/go-dap https://github.com/google/go-dap/pull/94) we get full strings feature automatically

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Ethan Reesor
        • Hongxiang Jiang
        Submit Requirements:
        • requirement is not satisfiedCode-Review
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement is not satisfiedReview-Enforcement
        • requirement is not satisfiedTryBots-Pass
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: vscode-go
        Gerrit-Branch: master
        Gerrit-Change-Id: I79823f8d424593209da7c1e2bc4f13dab094975a
        Gerrit-Change-Number: 690675
        Gerrit-PatchSet: 11
        Gerrit-Owner: Gerrit Bot <letsus...@gmail.com>
        Gerrit-Reviewer: Ethan Reesor <ethan....@gmail.com>
        Gerrit-Reviewer: Hongxiang Jiang <hxj...@golang.org>
        Gerrit-CC: Gopher Robot <go...@golang.org>
        Gerrit-CC: Madeline Kalil <mka...@google.com>
        Gerrit-CC: Maxim Kern <ctaj...@gmail.com>
        Gerrit-Attention: Hongxiang Jiang <hxj...@golang.org>
        Gerrit-Attention: Ethan Reesor <ethan....@gmail.com>
        Gerrit-Comment-Date: Tue, 12 Aug 2025 23:11:20 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Hongxiang Jiang <hxj...@golang.org>
        Comment-In-Reply-To: Maxim Kern <ctaj...@gmail.com>
        unsatisfied_requirement
        open
        diffy

        Ethan Reesor (Gerrit)

        unread,
        Aug 22, 2025, 2:24:34 PMAug 22
        to Gerrit Bot, goph...@pubsubhelper.golang.org, Go LUCI, Hongxiang Jiang, Madeline Kalil, Maxim Kern, Gopher Robot, golang-co...@googlegroups.com
        Attention needed from Hongxiang Jiang and Maxim Kern

        Ethan Reesor added 5 comments

        File extension/src/goDebugCommands.ts
        Line 12, Patchset 11 (Latest):vscode.debug.onDidTerminateDebugSession((s) => sessions.delete(s.id));
        Ethan Reesor . unresolved

        It's probably best to move these into `registerGoDebugCommands` and add them to the extension context's list of subscriptions so they can be cleaned up. When I wrote this I was thinking "they live for the life of the extension so it's ok if they're not cleaned up". But extensions get unloaded and reloaded so that's not actually true.

        Line 20, Patchset 11 (Latest): class VariableContentProvider implements vscode.TextDocumentContentProvider {
        Ethan Reesor . unresolved

        This is a personal nit: I don't like code that is unnecessarily indented. This class does not need to be defined within the function and IMO it would be more readable if it wasn't.

        Line 77, Patchset 11 (Latest): return new TextDecoder('utf-8').decode(allBytes);
        Ethan Reesor . unresolved

        Why not the follow, potentially avoiding an allocation?

        ```suggestion
        return allBytes.toString('utf-8');
        ```
        Line 87, Patchset 7: return JSON.parse(raw);
        Hongxiang Jiang . resolved

        In my local experiment, the yaml and a random string both succeed and returns.

        Maxim Kern

        I simplified the logic a bit and now it parses json just in case, and if it failed I go through the replace. Also i did some research about how it works underhood the Delve and used read memory DAP protocol part that requires some additional work (PR in Delve is ready). So i propose to wait for it. What do you think? Current code is for new features of Delve, but we can read big strings after it.

        Hongxiang Jiang

        Sure. Could you link the PR to delv?

        Most of the CL looks good to me. Need @ethan....@gmail.com to take another look at the recent change.

        We might need to have version aware logic, or a capability aware logic to coordinate with the delv.

        Maxim Kern

        Of course, PR in Delve https://github.com/go-delve/delve/pull/4083 with small demo of what i'm trying to achieve.

        Actually, it looks like PR in vscode-go in it's current state is compatible with current version of Delve, because of this https://github.com/golang/vscode-go/pull/3818/files#diff-ec4ea7b9d627c035b805356e9a923aa1d2045ce8892a1755891b7b76bdbaf1d6R46. And when Delve PR will be merged (and also google/go-dap https://github.com/google/go-dap/pull/94) we get full strings feature automatically

        Ethan Reesor

        I think it should work. If the version of delve doesn't support memory references, it will fall back to string parsing. I wasn't sure about the original string parsing - I assumed there was a reason for handling back ticks so I preserved that when I made my suggestion. If delve never produces backtick wrapped values, it's unnecessary.

        Line 96, Patchset 11 (Latest): interface VariableRef {
        Ethan Reesor . unresolved

        Same as my nit with the class, I think it would be cleaner if these were global (for the file) instead of nested within the registration function.

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Hongxiang Jiang
        • Maxim Kern
        Submit Requirements:
        • requirement is not satisfiedCode-Review
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement is not satisfiedReview-Enforcement
        • requirement is not satisfiedTryBots-Pass
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: vscode-go
        Gerrit-Branch: master
        Gerrit-Change-Id: I79823f8d424593209da7c1e2bc4f13dab094975a
        Gerrit-Change-Number: 690675
        Gerrit-PatchSet: 11
        Gerrit-Owner: Gerrit Bot <letsus...@gmail.com>
        Gerrit-Reviewer: Ethan Reesor <ethan....@gmail.com>
        Gerrit-Reviewer: Hongxiang Jiang <hxj...@golang.org>
        Gerrit-CC: Gopher Robot <go...@golang.org>
        Gerrit-CC: Madeline Kalil <mka...@google.com>
        Gerrit-CC: Maxim Kern <ctaj...@gmail.com>
        Gerrit-Attention: Hongxiang Jiang <hxj...@golang.org>
        Gerrit-Attention: Maxim Kern <ctaj...@gmail.com>
        Gerrit-Comment-Date: Fri, 22 Aug 2025 18:24:27 +0000
        unsatisfied_requirement
        open
        diffy

        Ethan Reesor (Gerrit)

        unread,
        Aug 22, 2025, 2:25:22 PMAug 22
        to Gerrit Bot, goph...@pubsubhelper.golang.org, Go LUCI, Hongxiang Jiang, Madeline Kalil, Maxim Kern, Gopher Robot, golang-co...@googlegroups.com
        Attention needed from Hongxiang Jiang and Maxim Kern

        Ethan Reesor added 1 comment

        Patchset-level comments
        File-level comment, Patchset 11 (Latest):
        Ethan Reesor . resolved

        Sorry for the delay, I wasn't checking gerrit.

        Gerrit-Comment-Date: Fri, 22 Aug 2025 18:25:17 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        unsatisfied_requirement
        open
        diffy

        Gerrit Bot (Gerrit)

        unread,
        Aug 26, 2025, 2:19:36 PMAug 26
        to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com
        Attention needed from Ethan Reesor, Hongxiang Jiang and Maxim Kern

        Gerrit Bot uploaded new patchset

        Gerrit Bot uploaded patch set #12 to this change.
        Following approvals got outdated and were removed:
        • TryBots-Pass: LUCI-TryBot-Result-1 by Go LUCI
        Open in Gerrit

        Related details

        Attention is currently required from:
        • Ethan Reesor
        • Hongxiang Jiang
        • Maxim Kern
        Submit Requirements:
        • requirement is not satisfiedCode-Review
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement is not satisfiedReview-Enforcement
        • requirement is not satisfiedTryBots-Pass
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: newpatchset
        Gerrit-Project: vscode-go
        Gerrit-Branch: master
        Gerrit-Change-Id: I79823f8d424593209da7c1e2bc4f13dab094975a
        Gerrit-Change-Number: 690675
        Gerrit-PatchSet: 12
        Gerrit-Owner: Gerrit Bot <letsus...@gmail.com>
        Gerrit-Reviewer: Ethan Reesor <ethan....@gmail.com>
        Gerrit-Reviewer: Hongxiang Jiang <hxj...@golang.org>
        Gerrit-CC: Gopher Robot <go...@golang.org>
        Gerrit-CC: Madeline Kalil <mka...@google.com>
        Gerrit-CC: Maxim Kern <ctaj...@gmail.com>
        Gerrit-Attention: Hongxiang Jiang <hxj...@golang.org>
        unsatisfied_requirement
        open
        diffy

        Maxim Kern (Gerrit)

        unread,
        Aug 26, 2025, 2:25:52 PMAug 26
        to Gerrit Bot, goph...@pubsubhelper.golang.org, Go LUCI, Hongxiang Jiang, Madeline Kalil, Ethan Reesor, Gopher Robot, golang-co...@googlegroups.com
        Attention needed from Ethan Reesor and Hongxiang Jiang

        Maxim Kern added 4 comments

        File extension/src/goDebugCommands.ts
        Line 12, Patchset 11:vscode.debug.onDidTerminateDebugSession((s) => sessions.delete(s.id));
        Ethan Reesor . resolved

        It's probably best to move these into `registerGoDebugCommands` and add them to the extension context's list of subscriptions so they can be cleaned up. When I wrote this I was thinking "they live for the life of the extension so it's ok if they're not cleaned up". But extensions get unloaded and reloaded so that's not actually true.

        Maxim Kern

        I moved this calls into registerGoDebugCommands function and also used them in ctx.subscriptions.push, because it looks like it's better pattern for Disposable objects. Like we already did it for vscode.workspace.registerTextDocumentContentProvider and vscode.commands.registerCommand. What do you think?

        There are also vscode.debug.onDidChangeActiveDebugSession callback and vscode.debug.activeDebugSession prop that we ignore. Is it safe or we must use it?

        Line 20, Patchset 11: class VariableContentProvider implements vscode.TextDocumentContentProvider {
        Ethan Reesor . resolved

        This is a personal nit: I don't like code that is unnecessarily indented. This class does not need to be defined within the function and IMO it would be more readable if it wasn't.

        Maxim Kern

        Done

        Line 77, Patchset 11: return new TextDecoder('utf-8').decode(allBytes);
        Ethan Reesor . resolved

        Why not the follow, potentially avoiding an allocation?

        ```suggestion
        return allBytes.toString('utf-8');
        ```
        Maxim Kern

        Done

        Line 96, Patchset 11: interface VariableRef {
        Ethan Reesor . resolved

        Same as my nit with the class, I think it would be cleaner if these were global (for the file) instead of nested within the registration function.

        Maxim Kern

        Done

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Ethan Reesor
        • Hongxiang Jiang
        Submit Requirements:
        • requirement is not satisfiedCode-Review
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement is not satisfiedReview-Enforcement
        • requirement is not satisfiedTryBots-Pass
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: vscode-go
        Gerrit-Branch: master
        Gerrit-Change-Id: I79823f8d424593209da7c1e2bc4f13dab094975a
        Gerrit-Change-Number: 690675
        Gerrit-PatchSet: 12
        Gerrit-Owner: Gerrit Bot <letsus...@gmail.com>
        Gerrit-Reviewer: Ethan Reesor <ethan....@gmail.com>
        Gerrit-Reviewer: Hongxiang Jiang <hxj...@golang.org>
        Gerrit-CC: Gopher Robot <go...@golang.org>
        Gerrit-CC: Madeline Kalil <mka...@google.com>
        Gerrit-CC: Maxim Kern <ctaj...@gmail.com>
        Gerrit-Attention: Hongxiang Jiang <hxj...@golang.org>
        Gerrit-Attention: Ethan Reesor <ethan....@gmail.com>
        Gerrit-Comment-Date: Tue, 26 Aug 2025 18:25:44 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Ethan Reesor <ethan....@gmail.com>
        unsatisfied_requirement
        open
        diffy

        Ethan Reesor (Gerrit)

        unread,
        Aug 26, 2025, 4:47:26 PMAug 26
        to Gerrit Bot, goph...@pubsubhelper.golang.org, Go LUCI, Hongxiang Jiang, Madeline Kalil, Maxim Kern, Gopher Robot, golang-co...@googlegroups.com
        Attention needed from Hongxiang Jiang and Maxim Kern

        Ethan Reesor voted and added 1 comment

        Votes added by Ethan Reesor

        Code-Review+1
        Commit-Queue+1

        1 comment

        File extension/src/goDebugCommands.ts
        Line 12, Patchset 11:vscode.debug.onDidTerminateDebugSession((s) => sessions.delete(s.id));
        Ethan Reesor . resolved

        It's probably best to move these into `registerGoDebugCommands` and add them to the extension context's list of subscriptions so they can be cleaned up. When I wrote this I was thinking "they live for the life of the extension so it's ok if they're not cleaned up". But extensions get unloaded and reloaded so that's not actually true.

        Maxim Kern

        I moved this calls into registerGoDebugCommands function and also used them in ctx.subscriptions.push, because it looks like it's better pattern for Disposable objects. Like we already did it for vscode.workspace.registerTextDocumentContentProvider and vscode.commands.registerCommand. What do you think?

        There are also vscode.debug.onDidChangeActiveDebugSession callback and vscode.debug.activeDebugSession prop that we ignore. Is it safe or we must use it?

        Ethan Reesor

        Yeah, it all looks good.

        There are also vscode.debug.onDidChangeActiveDebugSession callback and vscode.debug.activeDebugSession prop that we ignore

        We don't care about which session is active, we just need to be able to map ID to debug session so that we can query delve. So maintaining a list of live sessions is sufficient.

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Hongxiang Jiang
        • Maxim Kern
        Submit Requirements:
        • requirement is not satisfiedCode-Review
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement is not satisfiedReview-Enforcement
        • requirement is not satisfiedTryBots-Pass
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: vscode-go
        Gerrit-Branch: master
        Gerrit-Change-Id: I79823f8d424593209da7c1e2bc4f13dab094975a
        Gerrit-Change-Number: 690675
        Gerrit-PatchSet: 12
        Gerrit-Owner: Gerrit Bot <letsus...@gmail.com>
        Gerrit-Reviewer: Ethan Reesor <ethan....@gmail.com>
        Gerrit-Reviewer: Hongxiang Jiang <hxj...@golang.org>
        Gerrit-CC: Gopher Robot <go...@golang.org>
        Gerrit-CC: Madeline Kalil <mka...@google.com>
        Gerrit-CC: Maxim Kern <ctaj...@gmail.com>
        Gerrit-Attention: Hongxiang Jiang <hxj...@golang.org>
        Gerrit-Attention: Maxim Kern <ctaj...@gmail.com>
        Gerrit-Comment-Date: Tue, 26 Aug 2025 20:47:20 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: Yes
        unsatisfied_requirement
        open
        diffy

        Maxim Kern (Gerrit)

        unread,
        Aug 26, 2025, 6:24:22 PMAug 26
        to Gerrit Bot, goph...@pubsubhelper.golang.org, Go LUCI, Ethan Reesor, Hongxiang Jiang, Madeline Kalil, Gopher Robot, golang-co...@googlegroups.com
        Attention needed from Ethan Reesor and Hongxiang Jiang

        Maxim Kern added 2 comments

        Patchset-level comments
        File-level comment, Patchset 3:
        Ethan Reesor . resolved

        From CI: gopls settings section in package.json needs update. To update the settings, run "go run tools/generate.go -w -gopls".

        Maxim Kern

        I runed the generator, now there are many more changes. Is this ok? I don't fully understand its purpose and results.

        Hongxiang Jiang

        Probably not. Let me try to figure this out. Normally it's the gopls version wrong running in your workstation.

        I will also review the change. Thanks for the contribution.

        Hongxiang Jiang

        Try

        ```
        go install golang.org/x/tools/go...@v0.20.0

        // verify the go version is 0.20.0
        gopls version

        // run generate
        cd extension
        go run tools/generate.go -w -gopls
        ```

        The generator use the gopls local version, so maybe the gopls version in your env is 0.19 or earlier resulting in this big change in package.json.

        Maxim Kern

        It helped! Thanks!

        Hongxiang Jiang

        There are still unexpected changes in package.json.

        I think you just need a rebase to make it correct. Try to sync your commit to the head of master branch.

        Rebase and re-run the steps above.

        I tried it. https://go-review.git.corp.google.com/c/vscode-go/+/695396

        Maxim Kern

        I fix conflict in github interface (and that merged master into my branch). Rerun generator - nothing changed.

        File-level comment, Patchset 11:
        Hongxiang Jiang . resolved

        There are some style error showing up in my editor, please also resolve those. I think the presubmit will fail. I can trigger a test run.

        Like

        ```
        'full' is never reassigned. Use 'const' instead
        Unexpected constant condition.
        'raw' is never reassigned. Use 'const' instead.eslintprefer-const
        ```

        Maxim Kern

        Did it. I don't have such messages, probably because of the tooling installed. Am I missing anything else?

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Ethan Reesor
        • Hongxiang Jiang
        Submit Requirements:
          • requirement is not satisfiedCode-Review
          • requirement satisfiedNo-Unresolved-Comments
          • requirement is not satisfiedReview-Enforcement
          • requirement is not satisfiedTryBots-Pass
          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
          Gerrit-MessageType: comment
          Gerrit-Project: vscode-go
          Gerrit-Branch: master
          Gerrit-Change-Id: I79823f8d424593209da7c1e2bc4f13dab094975a
          Gerrit-Change-Number: 690675
          Gerrit-PatchSet: 12
          Gerrit-Owner: Gerrit Bot <letsus...@gmail.com>
          Gerrit-Reviewer: Ethan Reesor <ethan....@gmail.com>
          Gerrit-Reviewer: Hongxiang Jiang <hxj...@golang.org>
          Gerrit-CC: Gopher Robot <go...@golang.org>
          Gerrit-CC: Madeline Kalil <mka...@google.com>
          Gerrit-CC: Maxim Kern <ctaj...@gmail.com>
          Gerrit-Attention: Ethan Reesor <ethan....@gmail.com>
          Gerrit-Attention: Hongxiang Jiang <hxj...@golang.org>
          Gerrit-Comment-Date: Tue, 26 Aug 2025 22:24:13 +0000
          Gerrit-HasComments: Yes
          Gerrit-Has-Labels: No
          Comment-In-Reply-To: Hongxiang Jiang <hxj...@golang.org>
          unsatisfied_requirement
          satisfied_requirement
          open
          diffy

          Gerrit Bot (Gerrit)

          unread,
          Aug 26, 2025, 6:24:29 PMAug 26
          to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com
          Attention needed from Ethan Reesor and Hongxiang Jiang

          Gerrit Bot uploaded new patchset

          Gerrit Bot uploaded patch set #13 to this change.
          Following approvals got outdated and were removed:
          • Code-Review: +1 by Ethan Reesor
          • TryBots-Pass: LUCI-TryBot-Result-1 by Go LUCI
          Open in Gerrit

          Related details

          Attention is currently required from:
          • Ethan Reesor
          • Hongxiang Jiang
          Submit Requirements:
          • requirement is not satisfiedCode-Review
          • requirement satisfiedNo-Unresolved-Comments
          • requirement is not satisfiedReview-Enforcement
          • requirement is not satisfiedTryBots-Pass
          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
          Gerrit-MessageType: newpatchset
          Gerrit-Project: vscode-go
          Gerrit-Branch: master
          Gerrit-Change-Id: I79823f8d424593209da7c1e2bc4f13dab094975a
          Gerrit-Change-Number: 690675
          Gerrit-PatchSet: 13
          unsatisfied_requirement
          satisfied_requirement
          open
          diffy

          Ethan Reesor (Gerrit)

          unread,
          Sep 17, 2025, 4:56:24 PMSep 17
          to Gerrit Bot, goph...@pubsubhelper.golang.org, Go LUCI, Hongxiang Jiang, Madeline Kalil, Maxim Kern, Gopher Robot, golang-co...@googlegroups.com
          Attention needed from Hongxiang Jiang

          Ethan Reesor voted Commit-Queue+1

          Commit-Queue+1
          Open in Gerrit

          Related details

          Attention is currently required from:
          • Hongxiang Jiang
          Submit Requirements:
          • requirement is not satisfiedCode-Review
          • requirement satisfiedNo-Unresolved-Comments
          • requirement is not satisfiedReview-Enforcement
          • requirement is not satisfiedTryBots-Pass
          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
          Gerrit-MessageType: comment
          Gerrit-Project: vscode-go
          Gerrit-Branch: master
          Gerrit-Change-Id: I79823f8d424593209da7c1e2bc4f13dab094975a
          Gerrit-Change-Number: 690675
          Gerrit-PatchSet: 13
          Gerrit-Owner: Gerrit Bot <letsus...@gmail.com>
          Gerrit-Reviewer: Ethan Reesor <ethan....@gmail.com>
          Gerrit-Reviewer: Hongxiang Jiang <hxj...@golang.org>
          Gerrit-CC: Gopher Robot <go...@golang.org>
          Gerrit-CC: Madeline Kalil <mka...@google.com>
          Gerrit-CC: Maxim Kern <ctaj...@gmail.com>
          Gerrit-Attention: Hongxiang Jiang <hxj...@golang.org>
          Gerrit-Comment-Date: Wed, 17 Sep 2025 20:56:21 +0000
          Gerrit-HasComments: No
          Gerrit-Has-Labels: Yes
          unsatisfied_requirement
          satisfied_requirement
          open
          diffy

          Gerrit Bot (Gerrit)

          unread,
          Sep 17, 2025, 4:56:26 PMSep 17
          to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com
          Attention needed from Ethan Reesor and Hongxiang Jiang

          Gerrit Bot uploaded new patchset

          Gerrit Bot uploaded patch set #14 to this change.
          Open in Gerrit

          Related details

          Attention is currently required from:
          • Ethan Reesor
          • Hongxiang Jiang
          Submit Requirements:
          • requirement is not satisfiedCode-Review
          • requirement satisfiedNo-Unresolved-Comments
          • requirement is not satisfiedReview-Enforcement
          • requirement is not satisfiedTryBots-Pass
          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
          Gerrit-MessageType: newpatchset
          Gerrit-Project: vscode-go
          Gerrit-Branch: master
          Gerrit-Change-Id: I79823f8d424593209da7c1e2bc4f13dab094975a
          Gerrit-Change-Number: 690675
          Gerrit-PatchSet: 14
          Gerrit-Owner: Gerrit Bot <letsus...@gmail.com>
          Gerrit-Reviewer: Ethan Reesor <ethan....@gmail.com>
          Gerrit-Reviewer: Hongxiang Jiang <hxj...@golang.org>
          Gerrit-CC: Gopher Robot <go...@golang.org>
          Gerrit-CC: Madeline Kalil <mka...@google.com>
          Gerrit-CC: Maxim Kern <ctaj...@gmail.com>
          unsatisfied_requirement
          satisfied_requirement
          open
          diffy

          Hongxiang Jiang (Gerrit)

          unread,
          Oct 15, 2025, 2:05:11 PMOct 15
          to Gerrit Bot, goph...@pubsubhelper.golang.org, Ethan Reesor, Go LUCI, Madeline Kalil, Maxim Kern, Gopher Robot, golang-co...@googlegroups.com

          Hongxiang Jiang added 1 comment

          Patchset-level comments
          File-level comment, Patchset 14 (Latest):
          Hongxiang Jiang . resolved

          Hi Maxim, I have not been following the latest update on the delv side, is this CL ready for review? @ctaj...@gmail.com

          Open in Gerrit

          Related details

          Attention set is empty
          Submit Requirements:
          • requirement is not satisfiedCode-Review
          • requirement satisfiedNo-Unresolved-Comments
          • requirement is not satisfiedReview-Enforcement
          • requirement is not satisfiedTryBots-Pass
          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
          Gerrit-MessageType: comment
          Gerrit-Project: vscode-go
          Gerrit-Branch: master
          Gerrit-Change-Id: I79823f8d424593209da7c1e2bc4f13dab094975a
          Gerrit-Change-Number: 690675
          Gerrit-PatchSet: 14
          Gerrit-Owner: Gerrit Bot <letsus...@gmail.com>
          Gerrit-Reviewer: Ethan Reesor <ethan....@gmail.com>
          Gerrit-Reviewer: Hongxiang Jiang <hxj...@golang.org>
          Gerrit-CC: Gopher Robot <go...@golang.org>
          Gerrit-CC: Madeline Kalil <mka...@google.com>
          Gerrit-CC: Maxim Kern <ctaj...@gmail.com>
          Gerrit-Comment-Date: Wed, 15 Oct 2025 18:05:07 +0000
          Gerrit-HasComments: Yes
          Gerrit-Has-Labels: No
          unsatisfied_requirement
          satisfied_requirement
          open
          diffy

          Hongxiang Jiang (Gerrit)

          unread,
          Oct 15, 2025, 2:05:25 PMOct 15
          to Gerrit Bot, goph...@pubsubhelper.golang.org, Ethan Reesor, Go LUCI, Madeline Kalil, Maxim Kern, Gopher Robot, golang-co...@googlegroups.com

          Hongxiang Jiang voted Commit-Queue+1

          Commit-Queue+1
          Open in Gerrit

          Related details

          Attention set is empty
          Submit Requirements:
          • requirement is not satisfiedCode-Review
          • requirement satisfiedNo-Unresolved-Comments
          • requirement is not satisfiedReview-Enforcement
          • requirement is not satisfiedTryBots-Pass
          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
          Gerrit-MessageType: comment
          Gerrit-Project: vscode-go
          Gerrit-Branch: master
          Gerrit-Change-Id: I79823f8d424593209da7c1e2bc4f13dab094975a
          Gerrit-Change-Number: 690675
          Gerrit-PatchSet: 14
          Gerrit-Owner: Gerrit Bot <letsus...@gmail.com>
          Gerrit-Reviewer: Ethan Reesor <ethan....@gmail.com>
          Gerrit-Reviewer: Hongxiang Jiang <hxj...@golang.org>
          Gerrit-CC: Gopher Robot <go...@golang.org>
          Gerrit-CC: Madeline Kalil <mka...@google.com>
          Gerrit-CC: Maxim Kern <ctaj...@gmail.com>
          Gerrit-Comment-Date: Wed, 15 Oct 2025 18:05:22 +0000
          Gerrit-HasComments: No
          Gerrit-Has-Labels: Yes
          unsatisfied_requirement
          satisfied_requirement
          open
          diffy

          Gerrit Bot (Gerrit)

          unread,
          Dec 24, 2025, 8:20:29 AM (18 hours ago) Dec 24
          to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com
          Attention needed from Ethan Reesor and Hongxiang Jiang

          Gerrit Bot uploaded new patchset

          Gerrit Bot uploaded patch set #15 to this change.
          Following approvals got outdated and were removed:
          • TryBots-Pass: LUCI-TryBot-Result-1 by Go LUCI
          Open in Gerrit

          Related details

          Attention is currently required from:
          • Ethan Reesor
          • Hongxiang Jiang
          Submit Requirements:
          • requirement is not satisfiedCode-Review
          • requirement satisfiedNo-Unresolved-Comments
          • requirement is not satisfiedReview-Enforcement
          • requirement is not satisfiedTryBots-Pass
          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
          Gerrit-MessageType: newpatchset
          Gerrit-Project: vscode-go
          Gerrit-Branch: master
          Gerrit-Change-Id: I79823f8d424593209da7c1e2bc4f13dab094975a
          Gerrit-Change-Number: 690675
          Gerrit-PatchSet: 15
          Gerrit-Owner: Gerrit Bot <letsus...@gmail.com>
          Gerrit-Reviewer: Ethan Reesor <ethan....@gmail.com>
          Gerrit-Reviewer: Hongxiang Jiang <hxj...@golang.org>
          Gerrit-CC: Gopher Robot <go...@golang.org>
          Gerrit-CC: Madeline Kalil <mka...@google.com>
          Gerrit-CC: Maxim Kern <ctaj...@gmail.com>
          Gerrit-Attention: Hongxiang Jiang <hxj...@golang.org>
          Gerrit-Attention: Ethan Reesor <ethan....@gmail.com>
          unsatisfied_requirement
          satisfied_requirement
          open
          diffy

          Maxim Kern (Gerrit)

          unread,
          Dec 24, 2025, 8:22:26 AM (18 hours ago) Dec 24
          to Gerrit Bot, goph...@pubsubhelper.golang.org, Go LUCI, Hongxiang Jiang, Ethan Reesor, Madeline Kalil, Gopher Robot, golang-co...@googlegroups.com
          Attention needed from Ethan Reesor and Hongxiang Jiang

          Maxim Kern added 1 comment

          Patchset-level comments
          Hongxiang Jiang . resolved

          Hi Maxim, I have not been following the latest update on the delv side, is this CL ready for review? @ctaj...@gmail.com

          Maxim Kern

          Hi @hxj...@golang.org, dlv 1.26 was released recently. Looks like it is ready to go. I've updated PR (fix conflict in CHANGELOG) and rebased to current master.

          Open in Gerrit

          Related details

          Attention is currently required from:
          • Ethan Reesor
          • Hongxiang Jiang
          Submit Requirements:
          • requirement is not satisfiedCode-Review
          • requirement satisfiedNo-Unresolved-Comments
          • requirement is not satisfiedReview-Enforcement
          • requirement is not satisfiedTryBots-Pass
          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
          Gerrit-MessageType: comment
          Gerrit-Project: vscode-go
          Gerrit-Branch: master
          Gerrit-Change-Id: I79823f8d424593209da7c1e2bc4f13dab094975a
          Gerrit-Change-Number: 690675
          Gerrit-PatchSet: 14
          Gerrit-Owner: Gerrit Bot <letsus...@gmail.com>
          Gerrit-Reviewer: Ethan Reesor <ethan....@gmail.com>
          Gerrit-Reviewer: Hongxiang Jiang <hxj...@golang.org>
          Gerrit-CC: Gopher Robot <go...@golang.org>
          Gerrit-CC: Madeline Kalil <mka...@google.com>
          Gerrit-CC: Maxim Kern <ctaj...@gmail.com>
          Gerrit-Attention: Hongxiang Jiang <hxj...@golang.org>
          Gerrit-Attention: Ethan Reesor <ethan....@gmail.com>
          Gerrit-Comment-Date: Wed, 24 Dec 2025 13:22:19 +0000
          Gerrit-HasComments: Yes
          Gerrit-Has-Labels: No
          Comment-In-Reply-To: Hongxiang Jiang <hxj...@golang.org>
          unsatisfied_requirement
          satisfied_requirement
          open
          diffy
          Reply all
          Reply to author
          Forward
          0 new messages