[gnome-builder/gnome-builder-3-32] Enable code-completion and hovering
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/gnome-builder-3-32] Enable code-completion and hovering
- Date: Sat, 27 Apr 2019 17:42:21 +0000 (UTC)
commit f9b3c53780f731c2d64b785732a91b1f60fc577e
Author: Henry F <h finucane+gnome gmail com>
Date: Sat Apr 27 10:08:02 2019 -0700
Enable code-completion and hovering
It works and looks nice. I'm looking into the other LSP things like
diagnostics & formatting, but no luck yet.
src/plugins/go-langserv/go_langserver_plugin.py | 26 ++++++++++---------------
1 file changed, 10 insertions(+), 16 deletions(-)
---
diff --git a/src/plugins/go-langserv/go_langserver_plugin.py b/src/plugins/go-langserv/go_langserver_plugin.py
index 912b211fb..efd52b89a 100644
--- a/src/plugins/go-langserv/go_langserver_plugin.py
+++ b/src/plugins/go-langserv/go_langserver_plugin.py
@@ -62,7 +62,7 @@ class GoService(Ide.Object):
launcher.push_argv("/bin/bash")
launcher.push_argv("--login")
launcher.push_argv("-c")
- launcher.push_argv('exec %s %s' % (
+ launcher.push_argv('exec %s %s -gocodecompletion' % (
self._which_go_lanserver(),
"-trace" if DEV_MODE else ""))
@@ -105,22 +105,16 @@ class GoService(Ide.Object):
self._ensure_started()
self.bind_property('client', provider, 'client', GObject.BindingFlags.SYNC_CREATE)
-# This is the only up-to-date looking list of supported things lsp things:
-# https://github.com/sourcegraph/go-langserver/blob/master/langserver/handler.go#L226
-
class GoSymbolResolver(Ide.LspSymbolResolver, Ide.SymbolResolver):
def do_load(self):
GoService.bind_client(self)
-## This is supported as of a few weeks ago, but at least for me, it seems
-## awfully crashy, so I'm going to leave it disabled by default so as to
-## not give a bad impression
-#class GoCompletionProvider(Ide.LspCompletionProvider, Ide.CompletionProvider):
-# def do_load(self, context):
-# GoService.bind_client(self)
-
-## Could not validate that this works, though `go-langserver` says it does.
-## Calling out to `gofmt` is probably the more canonical route
-#class GoFormatter(Ide.LspFormatter, Ide.Formatter):
-# def do_load(self):
-# GoService.bind_client(self)
+class GoHoverProvider(Ide.LspHoverProvider):
+ def do_prepare(self):
+ self.props.category = 'Go'
+ self.props.priority = 100
+ GoService.bind_client(self)
+
+class GoCompletionProvider(Ide.LspCompletionProvider, Ide.CompletionProvider):
+ def do_load(self, context):
+ GoService.bind_client(self)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]