Add .config/nvim/fnl/config.fnl
This commit is contained in:
parent
d99be88de3
commit
82805695c5
1 changed files with 98 additions and 0 deletions
98
.config/nvim/fnl/config.fnl
Normal file
98
.config/nvim/fnl/config.fnl
Normal file
|
@ -0,0 +1,98 @@
|
|||
(fn setup-qol []
|
||||
(set vim.o.swapfile false)
|
||||
(set vim.o.backup false)
|
||||
(set vim.o.undofile true)
|
||||
|
||||
(set vim.o.updatetime 200)
|
||||
(set vim.o.timeoutlen 300)
|
||||
|
||||
(set vim.wo.number true)
|
||||
(set vim.wo.relativenumber true)
|
||||
|
||||
(set vim.o.clipboard "unnamedplus")
|
||||
|
||||
(set vim.o.splitright true)
|
||||
(set vim.o.splitbelow true)
|
||||
|
||||
(set vim.o.tabstop 4)
|
||||
(set vim.o.shiftwidth 4)
|
||||
(set vim.o.expandtab true)
|
||||
(set vim.o.smartindent true)
|
||||
|
||||
(set vim.o.autochdir true)
|
||||
|
||||
(vim.api.nvim_create_autocmd
|
||||
:BufReadPost
|
||||
{:callback
|
||||
#(let [line (vim.fn.line "'\"")
|
||||
last (vim.fn.line "$")]
|
||||
(when (and (> line 1) (< line last))
|
||||
(vim.api.nvim_win_set_cursor 0 [line 0])))})
|
||||
|
||||
(vim.api.nvim_create_autocmd
|
||||
:TextYankPost
|
||||
{:pattern "*"
|
||||
:callback #(vim.highlight.on_yank {:higroup "IncSearch" :timeout 200})})
|
||||
|
||||
(vim.api.nvim_create_autocmd
|
||||
:BufWritePre
|
||||
{:pattern "*"
|
||||
:callback #(vim.cmd "silent! %s/\\s\\+$//e")})
|
||||
|
||||
(vim.api.nvim_create_autocmd
|
||||
:FileType
|
||||
{:pattern ["qf" "help" "man" "lspinfo"]
|
||||
:callback #(vim.keymap.set "n" "q" ":close<CR>" {:buffer true :silent true})})
|
||||
|
||||
(set vim.o.showmode false)
|
||||
|
||||
(set vim.g.netrw_banner 0)
|
||||
(set vim.g.netrw_liststyle 3)
|
||||
(set vim.g.netrw_winsize 25)
|
||||
|
||||
(vim.cmd "colorscheme gruvbox")
|
||||
)
|
||||
|
||||
(fn setup-lsp []
|
||||
(local lspconfig (require "lspconfig"))
|
||||
(local mason (require "mason"))
|
||||
(local mason_lspconfig (require "mason-lspconfig"))
|
||||
(local cmp_nvim_lsp (require "cmp_nvim_lsp"))
|
||||
|
||||
(mason.setup {})
|
||||
(mason_lspconfig.setup
|
||||
{:ensure_installed ["pyright" "lua_ls" "bashls" "tsserver"]
|
||||
:automatic_installation true})
|
||||
|
||||
(local on_attach (fn [client bufnr]
|
||||
(local opts {:noremap true :silent true :buffer bufnr})
|
||||
|
||||
(vim.keymap.set "n" "gd" (fn [] (vim.lsp.buf.definition)) opts)
|
||||
(vim.keymap.set "n" "K" (fn [] (vim.lsp.buf.hover)) opts)
|
||||
(vim.keymap.set "n" "gi" (fn [] (vim.lsp.buf.implementation)) opts)
|
||||
(vim.keymap.set "n" "<leader>rn" (fn [] (vim.lsp.buf.rename)) opts)
|
||||
(vim.keymap.set "n" "<leader>ca" (fn [] (vim.lsp.buf.code_action)) opts)
|
||||
(vim.keymap.set "n" "gr" (fn [] (vim.lsp.buf.references)) opts)
|
||||
(vim.keymap.set "n" "<leader>f" (fn [] (vim.lsp.buf.format {:async true})) opts)
|
||||
))
|
||||
|
||||
(local capabilities (cmp_nvim_lsp.default_capabilities) ())
|
||||
|
||||
(for _, server in ipairs ["pyright" "bashls" "tsserver"]
|
||||
(lspconfig[server].setup
|
||||
{:on_attach on_attach
|
||||
:capabilities capabilities}))
|
||||
|
||||
(lspconfig.lua_ls.setup
|
||||
{:on_attach on_attach
|
||||
:capabilities capabilities
|
||||
:settings
|
||||
{:Lua
|
||||
{:diagnostics {:globals ["vim"]}
|
||||
:workspace
|
||||
{:library (vim.api.nvim_get_runtime_file "" true)
|
||||
:checkThirdParty false}
|
||||
:telemetry {:enable false}}}}))
|
||||
|
||||
(setup-qol)
|
||||
(setup-lsp)
|
Loading…
Add table
Reference in a new issue