mirror of
https://github.com/zyedidia/micro.git
synced 2026-03-17 14:27:12 +09:00
Allow configuring lsp server list
This commit is contained in:
@@ -253,6 +253,11 @@ func main() {
|
||||
screen.TermMessage(err)
|
||||
}
|
||||
|
||||
err = lsp.Init()
|
||||
if err != nil {
|
||||
screen.TermMessage(err)
|
||||
}
|
||||
|
||||
// flag options
|
||||
for k, v := range optionFlags {
|
||||
if *v != "" {
|
||||
|
||||
@@ -3,10 +3,13 @@ package lsp
|
||||
import (
|
||||
"errors"
|
||||
"io"
|
||||
"log"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/zyedidia/micro/v2/internal/config"
|
||||
"gopkg.in/yaml.v2"
|
||||
)
|
||||
|
||||
@@ -32,12 +35,23 @@ func GetLanguage(lang string) (Language, bool) {
|
||||
return Language{}, false
|
||||
}
|
||||
|
||||
func init() {
|
||||
func Init() error {
|
||||
var servers []byte
|
||||
var err error
|
||||
conf, err = LoadConfig([]byte(servers))
|
||||
if err != nil {
|
||||
log.Println("[micro-lsp]", err)
|
||||
|
||||
filename := filepath.Join(config.ConfigDir, "lsp.yaml")
|
||||
if _, e := os.Stat(filename); e == nil {
|
||||
servers, err = ioutil.ReadFile(filename)
|
||||
if err != nil {
|
||||
servers = servers_internal
|
||||
}
|
||||
} else {
|
||||
err = ioutil.WriteFile(filename, servers_internal, 0644)
|
||||
servers = servers_internal
|
||||
}
|
||||
|
||||
conf, err = LoadConfig(servers)
|
||||
return err
|
||||
}
|
||||
|
||||
func LoadConfig(data []byte) (*Config, error) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package lsp
|
||||
|
||||
var servers = `language:
|
||||
var servers_internal = []byte(`language:
|
||||
rust:
|
||||
command: rls
|
||||
install: [["rustup", "update"], ["rustup", "component", "add", "rls", "rust-analysis", "rust-src"]]
|
||||
@@ -64,4 +64,4 @@ var servers = `language:
|
||||
install: [["cargo", "install", "svls"]]
|
||||
d:
|
||||
command: serve-d
|
||||
`
|
||||
`)
|
||||
|
||||
Reference in New Issue
Block a user