mirror of
https://github.com/zyedidia/micro.git
synced 2025-06-18 23:05:40 -04:00
Replace toml with yaml
This commit is contained in:
parent
25f65a5f7b
commit
a26dd63d93
1
go.mod
1
go.mod
@ -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
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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 = []
|
|
||||||
`
|
|
67
internal/lsp/servers_yaml.go
Normal file
67
internal/lsp/servers_yaml.go
Normal 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
|
||||||
|
`
|
Loading…
Reference in New Issue
Block a user