Replace toml with yaml

This commit is contained in:
Zachary Yedidia 2020-08-12 21:56:49 -04:00
parent 25f65a5f7b
commit a26dd63d93
4 changed files with 84 additions and 98 deletions

1
go.mod
View File

@ -1,7 +1,6 @@
module github.com/zyedidia/micro/v2 module github.com/zyedidia/micro/v2
require ( require (
github.com/BurntSushi/toml v0.3.1
github.com/blang/semver v3.5.1+incompatible github.com/blang/semver v3.5.1+incompatible
github.com/dustin/go-humanize v1.0.0 github.com/dustin/go-humanize v1.0.0
github.com/go-errors/errors v1.0.1 github.com/go-errors/errors v1.0.1

View File

@ -3,38 +3,46 @@ package lsp
import ( import (
"errors" "errors"
"io" "io"
"log"
"os/exec" "os/exec"
"strings" "strings"
"github.com/BurntSushi/toml" "gopkg.in/yaml.v2"
) )
var ErrManualInstall = errors.New("Requires manual installation") var ErrManualInstall = errors.New("Requires manual installation")
type Config struct { type Config struct {
Languages map[string]Language `toml:"language"` Languages map[string]Language `yaml:"language"`
} }
type Language struct { type Language struct {
Command string `toml:"command"` Command string `yaml:"command"`
Args []string `toml:"args"` Args []string `yaml:"args"`
Install [][]string `toml:"install"` Install [][]string `yaml:"install"`
} }
var conf *Config var conf *Config
func GetLanguage(lang string) (Language, bool) { func GetLanguage(lang string) (Language, bool) {
l, ok := conf.Languages[lang] if conf != nil {
return l, ok l, ok := conf.Languages[lang]
return l, ok
}
return Language{}, false
} }
func init() { 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) { func LoadConfig(data []byte) (*Config, error) {
var conf Config var conf Config
if _, err := toml.Decode(string(data), &conf); err != nil { if err := yaml.Unmarshal(data, &conf); err != nil {
return nil, err return nil, err
} }

View File

@ -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 = []
`

View File

@ -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
`