Compare commits

..

2 Commits

Author SHA1 Message Date
44c4e29ebd add null-ls language server 2022-10-11 10:37:04 -05:00
b08bb34014 Turn of mouse that was added in neovim 0.8.0 2022-10-11 10:33:53 -05:00
4 changed files with 142 additions and 148 deletions

View File

@@ -76,6 +76,7 @@
:tabstop 2 :tabstop 2
:shiftwidth 2 :shiftwidth 2
:softtabstop 2 :softtabstop 2
:mouse ""
:list true :list true
:listchars "tab:➥\\ ,trail:·," :listchars "tab:➥\\ ,trail:·,"
:backspace "indent,eol,start" ;allow backspacing over everything in insert mode :backspace "indent,eol,start" ;allow backspacing over everything in insert mode

View File

@@ -1,39 +1,31 @@
(module dotfiles.plugin.lspconfig (module dotfiles.plugin.lspconfig
{autoload {autoload {a aniseed.core
{a aniseed.core
u dotfiles.util u dotfiles.util
nvim aniseed.nvim nvim aniseed.nvim
nu aniseed.nvim.util}}) nu aniseed.nvim.util}})
(defn bufmap [mode from to] (defn bufmap [mode from to] (u.noremap mode from to {:local? true}))
(u.noremap mode from to {:local? true}))
(defn nbufmap [from to] (defn nbufmap [from to] (bufmap :n from to))
(bufmap :n from to))
(defn xbufmap [from to]
(bufmap :x from to))
(defn xbufmap [from to] (bufmap :x from to))
(defn define-sign [level sign] (defn define-sign [level sign]
(let [sign-level (.. "DiagnosticSign" level)] (let [sign-level (.. :DiagnosticSign level)]
(nvim.fn.sign_define sign-level (nvim.fn.sign_define sign-level
{:texthl sign-level {:texthl sign-level :text sign :numhl sign-level})))
:text sign
:numhl sign-level})))
; (define-sign :Error "☢️") ; (define-sign :Error "☢️")
; (define-sign :Warn "⚠️") ; (define-sign :Warn "⚠️")
; (define-sign :SignHint "🔎") ; (define-sign :SignHint "🔎")
; (define-sign :Info "") ; (define-sign :Info "")
(define-sign :Error "X") (define-sign :Error :X)
(define-sign :Warn "!") (define-sign :Warn "!")
(define-sign :SignHint "?") (define-sign :SignHint "?")
(define-sign :Info "i") (define-sign :Info :i)
(def core-nmappings (def core-nmappings
{ {:gd "lua vim.lsp.buf.definition()"
:gd "lua vim.lsp.buf.definition()"
:gD "lua vim.lsp.buf.declaration()" :gD "lua vim.lsp.buf.declaration()"
:gi "lua vim.lsp.buf.implementation()" :gi "lua vim.lsp.buf.implementation()"
:gr "lua vim.lsp.buf.references()" :gr "lua vim.lsp.buf.references()"
@@ -48,31 +40,28 @@
;; :<leader>oc "lua vim.lsp.buf.outgoing_calls()" ;; :<leader>oc "lua vim.lsp.buf.outgoing_calls()"
:<leader>sld "lua vim.diagnostic.open_float(nil, {source = 'always'})" :<leader>sld "lua vim.diagnostic.open_float(nil, {source = 'always'})"
:<leader>rn "lua vim.lsp.buf.rename()" :<leader>rn "lua vim.lsp.buf.rename()"
:<leader>fa "lua vim.lsp.buf.formatting_sync()" :<leader>fa "lua vim.lsp.buf.format()"})
})
(def client-nmappings (def client-nmappings
{:clojure_lsp {:clojure_lsp {:<leader>cn "call LspExecuteCommand('clean-ns')"
{
:<leader>cn "call LspExecuteCommand('clean-ns')"
:<leader>ref "call LspExecuteCommand('extract-function', input('Function name: '))" :<leader>ref "call LspExecuteCommand('extract-function', input('Function name: '))"
:<leader>id "call LspExecuteCommand('inline-symbol')" :<leader>id "call LspExecuteCommand('inline-symbol')"
:<leader>il "call LspExecuteCommand('introduce-let', input('Binding name: '))" :<leader>il "call LspExecuteCommand('introduce-let', input('Binding name: '))"
:<leader>m2l "call LspExecuteCommand('move-to-let', input('Binding name: '))" :<leader>m2l "call LspExecuteCommand('move-to-let', input('Binding name: '))"}})
}
})
(def client-command-lnmappings (def client-command-lnmappings
{:clojure_lsp {:clojure_lsp {:ai [:add-import-to-namespace
{:ai [:add-import-to-namespace ["input('Namespace name: ')"]] ["input('Namespace name: ')"]]
:am [:add-missing-libspec []] :am [:add-missing-libspec []]
:as [:add-require-suggestion ["input('Namespace name: ')" "input('Namespace as: ')" "input('Namespace name: ')"]] :as [:add-require-suggestion
["input('Namespace name: ')"
"input('Namespace as: ')"
"input('Namespace name: ')"]]
:cc [:cycle-coll []] :cc [:cycle-coll []]
:cn [:clean-ns []] :cn [:clean-ns []]
:cp [:cycle-privacy []] :cp [:cycle-privacy []]
:ct [:create-test []] :ct [:create-test []]
:df [:demote-fn []] :df [:drag-forward []]
:db [:drag-backward []] :db [:drag-backward []]
:df [:drag-forward []] :df [:drag-forward []]
:dk [:destructure-keys []] :dk [:destructure-keys []]
@@ -93,10 +82,7 @@
:tl [:thread-last-all []] :tl [:thread-last-all []]
:tL [:thread-last []] :tL [:thread-last []]
:ua [:unwind-all []] :ua [:unwind-all []]
:uw [:unwind-thread []] :uw [:unwind-thread []]}})
}
})
(defn bind-client-mappings [client] (defn bind-client-mappings [client]
(let [client-name (a.get client :name) (let [client-name (a.get client :name)
@@ -108,8 +94,7 @@
(when command-lnmappings (when command-lnmappings
(each [lnmapping command-mapping (pairs command-lnmappings)] (each [lnmapping command-mapping (pairs command-lnmappings)]
(let [lsp-cmd (a.first command-mapping) (let [lsp-cmd (a.first command-mapping)
opts-str (accumulate [s "" opts-str (accumulate [s "" i opt (ipairs (a.second command-mapping))]
i opt (ipairs (a.second command-mapping))]
(.. s ", " opt)) (.. s ", " opt))
mapping (.. :<leader> lnmapping) mapping (.. :<leader> lnmapping)
cmd (.. "call LspExecuteCommand('" lsp-cmd "'" opts-str ")")] cmd (.. "call LspExecuteCommand('" lsp-cmd "'" opts-str ")")]
@@ -117,35 +102,28 @@
(defn on_attach [client bufnr] (defn on_attach [client bufnr]
(each [mapping cmd (pairs core-nmappings)] (each [mapping cmd (pairs core-nmappings)]
(nbufmap mapping cmd)) (nbufmap mapping cmd)) ; x mode mappings
(xbufmap :<leader>fa "lua vim.lsp.buf.format()")
; x mode mappings ; -- buf_set_keymap('n', 'gs', '<Cmd>lua vim.lsp.buf.document_symbol()<CR>', opts)
(xbufmap :<leader>fa "lua vim.lsp.buf.formatting_sync()") ; -- buf_set_keymap('n', 'gS', '<Cmd>lua vim.lsp.buf.workspace_symbol()<CR>', opts)
; -- buf_set_keymap('n', 'gt', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
; -- buf_set_keymap('n', 'gs', '<Cmd>lua vim.lsp.buf.document_symbol()<CR>', opts) ; -- buf_set_keymap('n', '<leader>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts)
; -- buf_set_keymap('n', 'gS', '<Cmd>lua vim.lsp.buf.workspace_symbol()<CR>', opts) ; -- buf_set_keymap('n', '<leader>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
; -- buf_set_keymap('n', 'gt', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts) ; -- buf_set_keymap('n', '<leader>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)
; -- buf_set_keymap('n', '<leader>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts) ; -- buf_set_keymap('n', '<leader>q', '<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>', opts)
; -- buf_set_keymap('n', '<leader>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts) ; -- buf_set_keymap('n', '<leader>ic', "<cmd>lua vim.lsp.buf.incoming_calls()<CR>", opts)
; -- buf_set_keymap('n', '<leader>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts) ; -- buf_set_keymap('x', '<leader>ic', "<cmd>lua vim.lsp.buf.incoming_calls()<CR>", opts)
; -- buf_set_keymap('n', '<leader>q', '<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>', opts)
; -- buf_set_keymap('n', '<leader>ic', "<cmd>lua vim.lsp.buf.incoming_calls()<CR>", opts)
; -- buf_set_keymap('x', '<leader>ic', "<cmd>lua vim.lsp.buf.incoming_calls()<CR>", opts)
(nvim.buf_set_option 0 :omnifunc "v:lua.vim.lsp.omnifunc") (nvim.buf_set_option 0 :omnifunc "v:lua.vim.lsp.omnifunc")
(bind-client-mappings client) (bind-client-mappings client)
(nvim.ex.autocmd :BufWritePre :<buffer> :lua "vim.lsp.buf.formatting_sync()") (nvim.ex.autocmd :BufWritePre :<buffer> :lua
; (nvim.ex.autocmd "BufEnter,CursorHold,InsertLeave" :<buffer> :lua "vim.lsp.codelens.refresh()") "vim.lsp.buf.formatting_sync()")
; (nvim.ex.autocmd "BufEnter,CursorHold,InsertLeave" :<buffer> :lua "vim.lsp.codelens.refresh()")
; client autocmds ; client autocmds
; -- vim.api.nvim_command[[autocmd BufWritePre <buffer> lua vim.lsp.buf_request_sync(vim.api.nvim_get_current_buf(), 'workspace/executeCommand', {command = 'clean-ns', arguments = {vim.uri_from_bufnr(1), vim.api.nvim_win_get_cursor(0)[1], vim.api.nvim_win_get_cursor(0)[2]}, title = 'Clean Namespace'})]] ; -- vim.api.nvim_command[[autocmd BufWritePre <buffer> lua vim.lsp.buf_request_sync(vim.api.nvim_get_current_buf(), 'workspace/executeCommand', {command = 'clean-ns', arguments = {vim.uri_from_bufnr(1), vim.api.nvim_win_get_cursor(0)[1], vim.api.nvim_win_get_cursor(0)[2]}, title = 'Clean Namespace'})]]
(print "LSP Client Attached.")) (print "LSP Client Attached."))
(let [lspi (require :nvim-lsp-installer)] (let [lspi (require :nvim-lsp-installer)]
(when lspi (when lspi
(defn lsp-execute-command [cmd ...] (defn lsp-execute-command [cmd ...]
(let [buf-uri (vim.uri_from_bufnr 0) (let [buf-uri (vim.uri_from_bufnr 0)
cursor (vim.api.nvim_win_get_cursor 0) cursor (vim.api.nvim_win_get_cursor 0)
@@ -153,26 +131,26 @@
c (a.second cursor) c (a.second cursor)
opts [buf-uri r c] opts [buf-uri r c]
args (a.concat opts [...])] args (a.concat opts [...])]
(vim.lsp.buf.execute_command {:command cmd (vim.lsp.buf.execute_command {:command cmd :arguments args})))
:arguments args})))
(defn setup-servers [] (defn setup-servers []
(lspi.on_server_ready (fn [server] (lspi.on_server_ready (fn [server]
(let [opts {:on_attach on_attach :flags {:debounce_text_changes 150} }] (let [opts {: on_attach
:flags {:debounce_text_changes 150}}]
(server:setup opts)))) (server:setup opts))))
;; (let [lspconfig (require :lspconfig) ;; (let [lspconfig (require :lspconfig)
;; servers (lspi.get_installed_servers)] ;; servers (lspi.get_installed_servers)]
;; (each [_ server (pairs servers)] ;; (each [_ server (pairs servers)]
;; (server.setup {:on_attach on_attach :flags {:debounce_text_changes 150} }))) ;; (server.setup {:on_attach on_attach :flags {:debounce_text_changes 150} })))
) )
(defn on-post-install [] (setup-servers) (nvim.ex.bufdo :e))
(defn on-post-install []
(setup-servers) (setup-servers)
(nvim.ex.bufdo :e))
(setup-servers)
(set lspi.post_install_hook on-post-install) (set lspi.post_install_hook on-post-install)
(nu.fn-bridge :LspExecuteCommand :dotfiles.plugin.lspconfig :lsp-execute-command {:return false}) (nu.fn-bridge :LspExecuteCommand :dotfiles.plugin.lspconfig
:lsp-execute-command {:return false})
(u.nnoremap :<leader>li :LspInfo)))
(u.nnoremap :<leader>li "LspInfo"))) (comment (let [lspi (require :nvim-lsp-installer)
;lspconfig (require :lspconfig)
servers (lspi.get_installed_servers)]
(each [_ server (pairs servers)]
(a.pr server))))

View File

@@ -0,0 +1,13 @@
(module dotfiles.plugin.null-ls
{autoload {nvim aniseed.nvim
a aniseed.core
nu aniseed.nvim.util
null-ls null-ls
lspconfig dotfiles.plugin.lspconfig}})
(def null-ls-server-options
{:sources [null-ls.builtins.formatting.stylua
null-ls.builtins.formatting.fnlfmt]
:on_attach lspconfig.on_attach})
(null-ls.setup null-ls-server-options)

View File

@@ -50,6 +50,8 @@
:hrsh7th/vim-vsnip-integ {} :hrsh7th/vim-vsnip-integ {}
:Iron-E/nvim-soluarized {} :Iron-E/nvim-soluarized {}
:jiangmiao/auto-pairs {} ; backets, parens, and quotes in pairs :jiangmiao/auto-pairs {} ; backets, parens, and quotes in pairs
:jose-elias-alvarez/null-ls.nvim {:mod :null-ls
:requires [:nvim-lua/plenary.nvim]}
:junegunn/vim-easy-align {:mod :easyalign} :junegunn/vim-easy-align {:mod :easyalign}
:kovisoft/paredit {:mod :paredit} :kovisoft/paredit {:mod :paredit}
:kristijanhusak/vim-dadbod-completion {} :kristijanhusak/vim-dadbod-completion {}