Skip to content
This repository was archived by the owner on Sep 24, 2021. It is now read-only.

Commit e8791d8

Browse files
avelinosvenefftinge
authored andcommitted
active go Package initial control
Beginning of upstream upgrade with fork ref: https://github.com/Microsoft/vscode-go
1 parent 49a3dab commit e8791d8

File tree

4 files changed

+417
-424
lines changed

4 files changed

+417
-424
lines changed

package.json

Lines changed: 72 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -507,12 +507,13 @@
507507
"go.formatTool": {
508508
"type": "string",
509509
"default": "goreturns",
510-
"description": "Pick 'gofmt', 'goimports' or 'goreturns' to run on format.",
510+
"description": "Pick 'gofmt', 'goimports', 'goreturns' or 'goformat' to run on format.",
511511
"scope": "resource",
512512
"enum": [
513513
"gofmt",
514514
"goimports",
515-
"goreturns"
515+
"goreturns",
516+
"goformat"
516517
]
517518
},
518519
"go.formatFlags": {
@@ -683,6 +684,75 @@
683684
"default": [],
684685
"description": "Flags like -trace and -logfile to be used while running the language server."
685686
},
687+
"go.languageServerExperimentalFeatures": {
688+
"type": "object",
689+
"properties": {
690+
"format": {
691+
"type": "boolean",
692+
"default": false,
693+
"description": "If true, gofmt is used by the language server to format files."
694+
},
695+
"autoComplete": {
696+
"type": "boolean",
697+
"default": false,
698+
"description": "If true, the language server will provide code completion results."
699+
},
700+
"rename": {
701+
"type": "boolean",
702+
"default": false,
703+
"description": "If true, the language server will be used for the Rename feature."
704+
},
705+
"goToDefinition": {
706+
"type": "boolean",
707+
"default": false,
708+
"description": "If true, the language server will be used for the Go to/Peek Definition feature."
709+
},
710+
"goToTypeDefinition": {
711+
"type": "boolean",
712+
"default": false,
713+
"description": "If true, the language server will be used for the Go to/Peek Type Definition feature."
714+
},
715+
"hover": {
716+
"type": "boolean",
717+
"default": false,
718+
"description": "If true, the language server will be used for the hover feature."
719+
},
720+
"findReferences": {
721+
"type": "boolean",
722+
"default": false,
723+
"description": "If true, the language server will be used for the Find/Peek References feature."
724+
},
725+
"signatureHelp": {
726+
"type": "boolean",
727+
"default": false,
728+
"description": "If true, the language server will be used for the Signature Help/Parameter Hints feature."
729+
},
730+
"documentSymbols": {
731+
"type": "boolean",
732+
"default": false,
733+
"description": "If true, the language server will be used for the Go to Document Symbols/Outline/Breadcrumbs feature."
734+
},
735+
"workspaceSymbols": {
736+
"type": "boolean",
737+
"default": false,
738+
"description": "If true, the language server will be used for the Go to Workspace Symbols feature."
739+
}
740+
},
741+
"default": {
742+
"format": false,
743+
"autoComplete": false,
744+
"rename": true,
745+
"goToDefinition": true,
746+
"hover": true,
747+
"signatureHelp": true,
748+
"goToTypeDefinition": true,
749+
"goToImplementation": true,
750+
"documentSymbols": true,
751+
"workspaceSymbols": true,
752+
"findReferences": true
753+
},
754+
"description": "Use this setting to enable/disable experimental features from the language server."
755+
},
686756
"go.gotoSymbol.includeImports": {
687757
"type": "boolean",
688758
"default": false,

src/goFormat.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ export class GoDocumentFormattingEditProvider implements vscode.DocumentFormatti
2929
formatFlags.push('-srcdir', filename);
3030
}
3131

32+
// Since goformat supports the style flag, set tabsize if user has not passed any flags
33+
/*if (formatTool === 'goformat' && formatFlags.length === 0 && options.insertSpaces) {
34+
formatFlags.push('-style=indent=' + options.tabSize);
35+
}*/
36+
3237
return this.runFormatter(formatTool, formatFlags, document).then(edits => edits, err => {
3338
if (err && err.startsWith('flag provided but not defined: -srcdir')) {
3439
promptForUpdatingTool(formatTool);

src/goInstallTools.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ const allTools: { [key: string]: string } = {
3232
'godoc': 'golang.org/x/tools/cmd/godoc',
3333
'gogetdoc': 'github.com/zmb3/gogetdoc',
3434
'goimports': 'golang.org/x/tools/cmd/goimports',
35+
'goformat': 'winterdrache.de/goformat/goformat',
3536
'goreturns': 'sourcegraph.com/sqs/goreturns',
3637
'golint': 'github.com/golang/lint/golint',
3738
'gotests': 'github.com/cweill/gotests/...',
@@ -92,6 +93,8 @@ function getTools(goVersion: SemVersion): string[] {
9293
// Install the formattool that was chosen by the user
9394
if (goConfig['formatTool'] === 'goimports') {
9495
tools.push('goimports');
96+
} else if (goConfig['formatTool'] === 'goformat') {
97+
tools.push('goformat');
9598
} else if (goConfig['formatTool'] === 'goreturns') {
9699
tools.push('goreturns');
97100
}

0 commit comments

Comments
 (0)