Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

x/tools/gopls: missing function literal suggestion #41123

Closed
liuwangchen opened this issue Aug 29, 2020 · 5 comments
Closed

x/tools/gopls: missing function literal suggestion #41123

liuwangchen opened this issue Aug 29, 2020 · 5 comments
Labels
FrozenDueToAge gopls Issues related to the Go language server, gopls. help wanted Tools This label describes issues relating to any tools in the x/tools repository. WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided.

Comments

@liuwangchen
Copy link

image

hope ↓

image

@gopherbot gopherbot added Tools This label describes issues relating to any tools in the x/tools repository. gopls Issues related to the Go language server, gopls. labels Aug 29, 2020
@gopherbot gopherbot added this to the Unreleased milestone Aug 29, 2020
@stamblerre
Copy link
Contributor

The snippet suggestion you see can be disabled by adding the following setting:

"[go]": {
	"editor.snippetSuggestions": "none",
}

I can't reproduce the lack of a func(...) {} suggestion though - can you please provide a complete repro case? What does the rest of the file look like?

@stamblerre stamblerre changed the title x/tools/gopls:bad suggestion x/tools/gopls: missing function literal suggestion Aug 29, 2020
@stamblerre stamblerre removed this from the Unreleased milestone Aug 29, 2020
@muirdm
Copy link

muirdm commented Aug 30, 2020

I was able to reproduce the missing completion with:

package main

func haha(fn func(value int)) {
}

func _() {
	haha(func<>)
	if true {
	}
}

We think "<>" is within a function literal, so we don't continue up to infer an expected type of func(int). The easiest fix would probably be to not count us as "in" the *ast.FuncLit in breaksExpectedTypeInference.

@liuwangchen
Copy link
Author

The snippet suggestion you see can be disabled by adding the following setting:

"[go]": {
	"editor.snippetSuggestions": "none",
}

I can't reproduce the lack of a func(...) {} suggestion though - can you please provide a complete repro case? What does the rest of the file look like?

image

I used "editor.snippetSuggestions": "none" but don't work.....

here is my setting is has wrong?

{
"debug.console.fontFamily": "Menlo",
"workbench.iconTheme": "vs-nomo-dark",
"workbench.colorCustomizations": {
"editor.background": "#2b2b2b",
"debugConsole.infoForeground": "#bdb1b1",
"statusBar.background": "#2b2b2b",
},
"editor.tokenColorCustomizations": {
"textMateRules": [
{
"scope": "support.function",
"settings": {
"foreground": "#d2d2d2"
}
}
],
},
"editor.lineHeight": 22,
"debug.console.fontSize": 13,
"extensions.ignoreRecommendations": true,
"markdown.preview.linkify": false,
"markdown.preview.doubleClickToSwitchToEditor": false,
"explorer.confirmDelete": false,
"workbench.settings.openDefaultSettings": true,
"rest-client.disableAddingHrefLinkForLargeResponse": false,
"rest-client.disableHighlightResonseBodyForLargeResponse": false,
"rest-client.previewResponsePanelTakeFocus": false,
"rest-client.previewResponseInUntitledDocument": true,
"rest-client.decodeEscapedUnicodeCharacters": true,
"rest-client.environmentVariables": {
"shared": {
"local": "localhost",
"localj": "localhost:8460",
"test": "10.142.117.99",
"testj": "10.142.117.99/j",
"testp": "passport.test.huajiao.com",
"onlinep": "10.143.166.108",
"yufabuip": "10.142.116.104",
"platform": "ios",
"version": "7.1.1",
}
},
"explorer.confirmDragAndDrop": false,
"files.autoSave": "afterDelay",
"yaml.validate": false,
"[dockerfile]": {
"editor.defaultFormatter": "ms-azuretools.vscode-docker"
},
"workbench.editor.enablePreview": false,
"window.zoomLevel": 0,
"workbench.sideBar.location": "left",
"[json]": {
"editor.quickSuggestions": {
"strings": true
},
"editor.suggest.insertMode": "replace",
},
"vim.insertModeKeyBindings": [],
"vim.leader": "",
"vim.easymotion": true,
"vim.easymotionMarkerWidthPerChar": 10,
"vim.easymotionKeys": "hklyuiopnmqwetzxcvbasdgjf",
"vim.easymotionMarkerForegroundColorTwoChar": "#f6f9a5",
"vim.easymotionDimBackground": false,
"vim.useCtrlKeys": true,
"vim.surround": true,
"vim.searchHighlightColor": "#32593d",
"go.autocompleteUnimportedPackages": false,
"[go]": {
"editor.insertSpaces": false,
"editor.formatOnSave": false,
"editor.codeActionsOnSave": {
"source.fixAll": false,
"source.organizeImports": true
},
"editor.snippetSuggestions": "none",
},
"gopls": {
"usePlaceholders": true,
"completeUnimported": true,
},
"go.lintTool": "golangci-lint",
"go.lintOnSave": "off",
"go.useLanguageServer": true,
"go.languageServerExperimentalFeatures": {
"diagnostics": false,
"documentLink": false
},
"go.formatTool": "goimports",
"go.addTags": {
"tags": "json,form",
"options": "json=omitempty",
"promptForTags": false,
"transform": "snakecase"
},
"editor.dragAndDrop": false,
"explorer.autoReveal": false,
"editor.quickSuggestions": true,
"editor.suggest.insertMode": "replace",
"editor.wordBasedSuggestions": false,
"editor.suggestSelection": "recentlyUsedByPrefix",
"editor.snippetSuggestions": "inline",
"editor.parameterHints.enabled": false,
"editor.multiCursorModifier": "ctrlCmd",
"timeline.excludeSources": [],
"editor.matchBrackets": "near",
"editor.autoClosingBrackets": "beforeWhitespace",
"editor.autoClosingQuotes": "never",
"editor.autoSurround": "never",
"search.searchOnType": true,
"replacerules.rules": {
"url format": {
"find": "&",
"replace": "\n&"
},
},
"explorer.compactFolders": false,
"workbench.editor.showTabs": false,
"hediet.vscode-drawio.local-storage": "eyIuZHJhd2lvLWNvbmZpZyI6IntcImxhbmd1YWdlXCI6XCJcIixcImN1c3RvbUZvbnRzXCI6W10sXCJsaWJyYXJpZXNcIjpcImdlbmVyYWw7dW1sO2VyO2JwbW47Zmxvd2NoYXJ0O2Jhc2ljO2Fycm93czJcIixcImN1c3RvbUxpYnJhcmllc1wiOltcIkwuc2NyYXRjaHBhZFwiXSxcInBsdWdpbnNcIjpbXSxcInJlY2VudENvbG9yc1wiOltdLFwiZm9ybWF0V2lkdGhcIjpcIjI0MFwiLFwiY3JlYXRlVGFyZ2V0XCI6ZmFsc2UsXCJwYWdlRm9ybWF0XCI6e1wieFwiOjAsXCJ5XCI6MCxcIndpZHRoXCI6MjMzOSxcImhlaWdodFwiOjMzMDB9LFwic2VhcmNoXCI6dHJ1ZSxcInNob3dTdGFydFNjcmVlblwiOnRydWUsXCJncmlkQ29sb3JcIjpcIiNkMGQwZDBcIixcImRhcmtHcmlkQ29sb3JcIjpcIiM2ZTZlNmVcIixcImF1dG9zYXZlXCI6dHJ1ZSxcInJlc2l6ZUltYWdlc1wiOm51bGwsXCJvcGVuQ291bnRlclwiOjAsXCJ2ZXJzaW9uXCI6MTgsXCJ1bml0XCI6MSxcImlzUnVsZXJPblwiOmZhbHNlLFwidWlcIjpcIlwifSJ9",
"rest-client.fontFamily": "",
"editor.fontSize": 13.2,
"git-graph.graphColours": [
"#ff6d67",
"#59f68d",
"#f3f89d",
"#c9a8fa",
"#ff92d0",
"#99ecfd",
"#00d9cc",
"#e138e8",
"#85d900",
"#dc5b23",
"#6f24d6",
"#ffcc00"
],
"editor.suggest.showColors": false,
"editor.suggestOnTriggerCharacters": true,
"editor.quickSuggestionsDelay": 0,
"editor.suggest.statusBar.visible": false,
"open-in-browser.default": "chrome",
"code-runner.clearPreviousOutput": true,
"code-runner.ignoreSelection": true
}

@stamblerre stamblerre added this to the gopls/unplanned milestone Oct 21, 2020
@muirdm
Copy link

muirdm commented Jan 10, 2021

I couldn't reproduce the problem with your above example either. (Also please also include the text of examples so it is easy for others to copy and paste.)

Can you simplify your config to the minimal config which reproduces the issue? Perhaps you can find the problem that way, assuming it is something in your config.

@stamblerre stamblerre added the WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided. label Jan 11, 2021
@gopherbot
Copy link

Timed out in state WaitingForInfo. Closing.

(I am just a bot, though. Please speak up if this is a mistake or you have the requested information.)

@stamblerre stamblerre removed this from the gopls/unplanned milestone Feb 11, 2021
@golang golang locked and limited conversation to collaborators Feb 11, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
FrozenDueToAge gopls Issues related to the Go language server, gopls. help wanted Tools This label describes issues relating to any tools in the x/tools repository. WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided.
Projects
None yet
Development

No branches or pull requests

4 participants