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

View File

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

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
`