Added null-fs
This commit is contained in:
@ -21,8 +21,14 @@
|
||||
(bind! :n :<leader>rn vim.lsp.buf.rename buf)
|
||||
(bind! :n :<leader>cn vim.lsp.buf.code_action buf)
|
||||
; (bind! :n :gr vim.lsp.buf.references buf)
|
||||
;(when client.server_capabilities.documentFormattingProvider
|
||||
; (bind! :n :<leader>o #(vim.lsp.buf.format { :async true }) buf))
|
||||
(bind! [ :n :v ] :<leader>o
|
||||
#(vim.lsp.buf.format { :filter
|
||||
;; use null-ls for formatting
|
||||
(fn [client] (or
|
||||
(= client.name :null-ls)
|
||||
(= client.name :rust_analyzer)))
|
||||
:async true }) buf)
|
||||
(vim.api.nvim_buf_set_option buf :formatexpr "v:lua.vim.lsp.formatexpr()")
|
||||
|
||||
;; Some telescope commands
|
||||
(bind! :n :<leader>s "<cmd>Telescope lsp_dynamic_workspace_symbols<cr>" buf)
|
||||
@ -41,7 +47,6 @@
|
||||
(bind! :n :<leader>q "<cmd>TroubleToggle document_diagnostics<cr>")
|
||||
(bind! :n :<leader>Q "<cmd>TroubleToggle workspace_diagnostics<cr>"))
|
||||
|
||||
|
||||
(fn get-data-dir [server root]
|
||||
(let [resolved_path (vim.fn.resolve root)
|
||||
joined_path (vim.fn.substitute resolved_path "\\/" "@" :g)]
|
||||
@ -52,7 +57,7 @@
|
||||
|
||||
(fn configure []
|
||||
(let [lsp (require :lspconfig)
|
||||
configs (require :lspconfig.configs)
|
||||
;configs (require :lspconfig.configs)
|
||||
lsp-cap ((. (require :cmp_nvim_lsp) :default_capabilities))
|
||||
lsp-utils (require :plugin.lsp)]
|
||||
(macro setup-server! [name ...]
|
||||
@ -65,7 +70,20 @@
|
||||
(set last-key nil))
|
||||
(set last-key val)))
|
||||
`((. (. lsp ,name) :setup) ,opts)))
|
||||
(setup-server! :ccls)
|
||||
(setup-server! :clangd
|
||||
:on_attach (fn [client buf]
|
||||
(lsp-utils.on-attach client buf)
|
||||
(bind! :n :go :<cmd>ClangdSwitchSourceHeader<cr> buf))
|
||||
:cmd [ "clangd"
|
||||
"--header-insertion-decorators=0"
|
||||
"--background-index"
|
||||
"--clang-tidy"
|
||||
"--completion-style=bundled"
|
||||
"--function-arg-placeholders"
|
||||
"--header-insertion=never"
|
||||
"--malloc-trim"
|
||||
"--pch-storage=memory"
|
||||
"--offset-encoding=utf-16" ])
|
||||
(setup-server! :cmake)
|
||||
(setup-server! :gopls)
|
||||
(setup-server! :rust_analyzer)
|
||||
@ -83,20 +101,12 @@
|
||||
:library (vim.api.nvim_get_runtime_file "" true) }
|
||||
:telemetry {
|
||||
:enable false }}})
|
||||
(tset configs :fennel_language_server {
|
||||
:default_config {
|
||||
:cmd [ "fennel-language-server" ]
|
||||
:filetypes [ "fennel" ]
|
||||
:single_file_support true
|
||||
:root_dir (lsp.util.root_pattern "fnl")
|
||||
:settings {
|
||||
:fennel {
|
||||
:workspace {
|
||||
:library (vim.api.nvim_list_runtime_paths) }
|
||||
:diagnostics {
|
||||
:globals [ "vim" ] }}}}})
|
||||
; needed to make it not complain about a nil setup function
|
||||
(if configs.fennel_language_server.setup
|
||||
(setup-server! :fennel_language_server))))
|
||||
(setup-server! :fennel_language_server
|
||||
:settings {
|
||||
:fennel {
|
||||
:workspace {
|
||||
:library (vim.api.nvim_list_runtime_paths) }
|
||||
:diagnostics {
|
||||
:globals [ "vim" ] }}})))
|
||||
|
||||
{ : configure : on-attach : get-data-dir }
|
||||
|
Reference in New Issue
Block a user