From a26dd63d93638fa9a40c7b412b6798faf41c5d19 Mon Sep 17 00:00:00 2001 From: Zachary Yedidia Date: Wed, 12 Aug 2020 21:56:49 -0400 Subject: [PATCH] Replace toml with yaml --- go.mod | 1 - internal/lsp/install.go | 26 +++++++---- internal/lsp/servers_toml.go | 88 ------------------------------------ internal/lsp/servers_yaml.go | 67 +++++++++++++++++++++++++++ 4 files changed, 84 insertions(+), 98 deletions(-) delete mode 100644 internal/lsp/servers_toml.go create mode 100644 internal/lsp/servers_yaml.go diff --git a/go.mod b/go.mod index c031b48e..fa3c1904 100644 --- a/go.mod +++ b/go.mod @@ -1,7 +1,6 @@ module github.com/zyedidia/micro/v2 require ( - github.com/BurntSushi/toml v0.3.1 github.com/blang/semver v3.5.1+incompatible github.com/dustin/go-humanize v1.0.0 github.com/go-errors/errors v1.0.1 diff --git a/internal/lsp/install.go b/internal/lsp/install.go index 37f38151..49373d8e 100644 --- a/internal/lsp/install.go +++ b/internal/lsp/install.go @@ -3,38 +3,46 @@ package lsp import ( "errors" "io" + "log" "os/exec" "strings" - "github.com/BurntSushi/toml" + "gopkg.in/yaml.v2" ) var ErrManualInstall = errors.New("Requires manual installation") type Config struct { - Languages map[string]Language `toml:"language"` + Languages map[string]Language `yaml:"language"` } type Language struct { - Command string `toml:"command"` - Args []string `toml:"args"` - Install [][]string `toml:"install"` + Command string `yaml:"command"` + Args []string `yaml:"args"` + Install [][]string `yaml:"install"` } var conf *Config func GetLanguage(lang string) (Language, bool) { - l, ok := conf.Languages[lang] - return l, ok + if conf != nil { + l, ok := conf.Languages[lang] + return l, ok + } + return Language{}, false } func init() { - conf, _ = LoadConfig([]byte(servers)) + var err error + conf, err = LoadConfig([]byte(servers)) + if err != nil { + log.Println("[micro-lsp]", err) + } } func LoadConfig(data []byte) (*Config, error) { var conf Config - if _, err := toml.Decode(string(data), &conf); err != nil { + if err := yaml.Unmarshal(data, &conf); err != nil { return nil, err } diff --git a/internal/lsp/servers_toml.go b/internal/lsp/servers_toml.go deleted file mode 100644 index 7fde89bf..00000000 --- a/internal/lsp/servers_toml.go +++ /dev/null @@ -1,88 +0,0 @@ -package lsp - -var servers = `[language.rust] -command = "rls" -install = [ - ["rustup", "update"], - ["rustup", "component", "add", "rls", "rust-analysis", "rust-src"], -] - -[language.javascript] -command = "typescript-language-server" -args = ["--stdio"] -install = [["npm", "install", "-g", "typescript-language-server"]] - -[language.typescript] -command = "typescript-language-server" -args = ["--stdio"] -install = [["npm", "install", "-g", "typescript-language-server"]] - -[language.html] -command = "html-languageserver" -args = ["--stdio"] -install = [["npm", "install", "-g", "vscode-html-languageserver-bin"]] - -[language.ocaml] -command = "ocaml-language-server" -args = ["--stdio"] -install = [["npm", "install", "-g", "ocaml-language-server"]] - -[language.python] -command = "pyls" -install = [["pip", "install", "python-language-server"]] - -[language.c] -command = "clangd" -args = [] - -[language.cpp] -command = "clangd" -args = [] - -[language.haskell] -command = "hie" -args = ["--lsp"] - -[language.go] -command = "gopls" -args = ["serve"] -install = [["go", "get", "-u", "golang.org/x/tools/gopls"]] - -[language.dart] -command = "dart_language_server" -install = [["pub", "global", "activate", "dart_language_server"]] - -[language.ruby] -command = "solargraph" -args = ["stdio"] -install = [["gem", "install", "solargraph"]] - -[language.css] -command = "css-languageserver" -args = ["--stdio"] -install = [["npm", "install", "-g", "vscode-css-languageserver-bin"]] - -[language.scss] -command = "css-languageserver" -args = ["--stdio"] -install = [["npm", "install", "-g", "vscode-css-languageserver-bin"]] - -[language.viml] -command = "vim-language-server" -args = ["--stdio"] -install = [["npm", "install", "-g", "vim-language-server"]] - -[language.purescript] -command = "purescript-language-server" -args = ["--stdio"] -install = [["npm", "install", "-g", "purescript-language-server"]] - -[language.verilog] -command = "svls" -args = [] -install = [["cargo", "install", "svls"]] - -[language.d] -command = "serve-d" -args = [] -` diff --git a/internal/lsp/servers_yaml.go b/internal/lsp/servers_yaml.go new file mode 100644 index 00000000..0b01276e --- /dev/null +++ b/internal/lsp/servers_yaml.go @@ -0,0 +1,67 @@ +package lsp + +var servers = `language: + rust: + command: rls + install: [["rustup", "update"], ["rustup", "component", "add", "rls", "rust-analysis", "rust-src"]] + javascript: + command: typescript-language-server + args: ["--stdio"] + install: [["npm", "install", "-g", "typescript-language-server"]] + typescript: + command: typescript-language-server + args: ["--stdio"] + install: [["npm", "install", "-g", "typescript-language-server"]] + html: + command: html-languageserver + args: ["--stdio"] + install: [["npm", "install", "-g", "vscode-html-languageserver-bin"]] + ocaml: + command: ocaml-language-server + args: ["--stdio"] + install: [["npm", "install", "-g", "ocaml-language-server"]] + python: + command: pyls + install: [["pip", "install", "python-language-server"]] + c: + command: clangd + args: [] + cpp: + command: clangd + args: [] + haskell: + command: hie + args: ["--lsp"] + go: + command: gopls + args: ["serve"] + install: [["go", "get", "-u", "golang.org/x/tools/gopls"]] + dart: + command: dart_language_server + install: [["pub", "global", "activate", "dart_language_server"]] + ruby: + command: solargraph + args: ["stdio"] + install: [["gem", "install", "solargraph"]] + css: + command: css-languageserver + args: ["--stdio"] + install: [["npm", "install", "-g", "vscode-css-languageserver-bin"]] + scss: + command: css-languageserver + args: ["--stdio"] + install: [["npm", "install", "-g", "vscode-css-languageserver-bin"]] + viml: + command: vim-language-server + args: ["--stdio"] + install: [["npm", "install", "-g", "vim-language-server"]] + purescript: + command: purescript-language-server + args: ["--stdio"] + install: [["npm", "install", "-g", "purescript-language-server"]] + verilog: + command: svls + install: [["cargo", "install", "svls"]] + d: + command: serve-d +`