summaryrefslogtreecommitdiff
path: root/neovim/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'neovim/init.lua')
-rw-r--r--neovim/init.lua365
1 files changed, 69 insertions, 296 deletions
diff --git a/neovim/init.lua b/neovim/init.lua
index 2ecb90a..c8ca7ec 100644
--- a/neovim/init.lua
+++ b/neovim/init.lua
@@ -1,296 +1,69 @@
--- general options {{{
-vim.opt.clipboard = {}
-vim.api.nvim_set_keymap(
- "n",
- "s",
- "<Plug>Ysurround",
- {silent=true,noremap=true}
-)
-
--- don't load standard plugins
-
-vim.g.loaded_2html_plugin = false
-vim.g.loaded_fzf = false
-vim.g.loaded_man = false
-vim.g.loaded_gzip = false
-vim.g.loaded_health = false
-vim.g.loaded_matchit = false
-vim.g.loaded_matchparen = false
-vim.g.loaded_netrwPlugin = false
-vim.g.loaded_rplugin = false
-vim.g.loaded_shada = false
-vim.g.loaded_spellfile = false
-vim.g.loaded_tarPlugin = false
-vim.g.loaded_tohtml = false
-vim.g.loaded_tutor = false
-vim.g.loaded_zipPlugin = false
-
-vim.cmd [[filetype plugin on]]
-vim.cmd [[filetype indent on]]
-vim.cmd [[colorscheme gruvbox-material]]
-vim.cmd [[highlight WinSeparator guibg=None]]
-vim.opt.laststatus = 3
-vim.opt.winbar = "%=%m %f"
-
-
-vim.g.dirvish_mode = ':sort | sort ,^.*[^/]$, r'
-
-vim.opt.foldopen = "block,hor,jump,mark,percent,quickfix,search,tag"
-vim.opt.complete = ".,w,k,kspell,b"
-vim.opt.completeopt = "menuone,noselect"
-
-
-vim.opt.secure = true
-vim.opt.exrc = true
-
--- relativenumbers and absolute number
-vim.opt.relativenumber = true
-vim.opt.number = true
-
--- don't show previous search pattern
-vim.opt.hlsearch = false
-
--- don't free buffer memory when abandoned
-vim.opt.hidden = true
-
--- 1 tab == 4 spaces
-vim.opt.tabstop = 4
-vim.opt.softtabstop = 4
-vim.opt.shiftwidth = 4
-
--- use spaces instead of tabs
-vim.opt.expandtab = true
-
-vim.opt.smartindent = true
-vim.opt.autoindent = true
-
--- show special characters as listed
-vim.opt.list = true
-vim.opt.listchars = { tab = ' ', eol = "﬋" }
-vim.opt.showbreak = '﬋'
-
--- make pasting better but makes insert mappings stop working...
--- vim.opt.paste = true
-
--- magic vim patterns
-vim.opt.magic = true
-
--- make splitting consistent
-vim.opt.splitbelow = true
-
-vim.opt.wrap = false
-vim.opt.swapfile = false
-vim.opt.backup = false
-vim.opt.undodir = os.getenv('HOME') .. "/.local/share/nvim/undo"
-vim.opt.undofile = true
-vim.opt.incsearch = true
-vim.opt.termguicolors = true
-vim.opt.scrolloff = 8
-vim.opt.smd = false
-vim.opt.signcolumn = "yes"
-vim.opt.inccommand = "split"
-vim.opt.wmw = 10
-vim.opt.isfname:append("@-@")
-vim.opt.diffopt:append("vertical")
-vim.opt.shortmess:append("c")
--- }}}
-
-
--- load global and utility functions
-
-local racket_lang = vim.g.racket_hash_lang_dict
-racket_lang.sicp = "racket"
-vim.g.racket_hash_lang_dict = racket_lang
-vim.api.nvim_set_keymap("n", "g<space>", ":TestNearest<cr>", {})
--- TODO: debug test
--- vim.api.nvim_set_keymap("n", "g<cr>", ":TestNearest<cr>", {})
-vim.g.mapleader = " "
-vim.g.maplocalleader = " "
-vim.o.shell = Flake.bash
-local vimrc = require('vimrc')
--- save session file in cwd
-vimrc.cwd_save_session()
-
--- tree-sitter {{{
-require('vimrc').setup_treesitter()
--- }}}
-
--- {{{ git
-vim.cmd([[command! -bang Gap :G commit -am 'fixmeuplater' | G push]])
--- }}}
-
--- completion {{{
-vim.api.nvim_set_keymap('n', ']p', ':tabn<cr>', { silent = true, noremap = true})
-vim.api.nvim_set_keymap('n', '[p', ':tabp<cr>', { silent = true, noremap = true})
-
-require'vimrc'.setup_cmp()
-
-require'vimrc.snippets'.setup()
-
--- }}}
-
--- buffers {{{
-vim.opt.switchbuf = "useopen,usetab"
-vim.opt.stal = 2
-
-vim.api.nvim_set_keymap(
- "n",
- "<leader>;",
- "<C-^>",
- { silent = true, noremap = true }
-)
-
--- taken from: https://github.com/Furkanzmc/dotfiles/blob/master/vim/init.lua
--- searching and replacing in buffers
-vim.api.nvim_set_keymap(
- "v",
- "<leader>s",
- ":call buffers#visual_selection('search', '')<CR>",
- { silent = true, noremap = true }
-)
-vim.api.nvim_set_keymap(
- "v",
- "<leader>r",
- ":call buffers#visual_selection('replace', '')<CR>",
- { silent = true, noremap = true }
-)
-vim.cmd([[command! -nargs=1 -complete=file E execute('silent! !mkdir -p "$(dirname "<args>")"') <Bar> e <args>]])
--- wiping buffers and wiping nofile-buffers
-vim.cmd([[command! -nargs=1 -bang Bdeletes :call buffers#wipe_matching('<args>', <q-bang>)]])
-vim.cmd([[command! Bdnonexisting :call buffers#wipe_nonexisting_files()]])
-
-vim.cmd([[command! CleanTrailingWhiteSpace :lua require"vimrc.buffers".clean_trailing_spaces()]])
-
-vim.cmd([[augroup vimrc_plugin_buffers]])
-vim.cmd([[au!]])
-vim.cmd(
- [[autocmd BufWritePre *.md,*.hcl,*.tf,*.py,*.cpp,*.qml,*.js,*.txt,*.json,*.html,*.lua,*.yaml,*.yml,*.bash,*.sh,*.go :lua require"vimrc.buffers".clean_trailing_spaces()]]
-)
-vim.cmd(
- [[autocmd BufReadPost * lua require"vimrc.buffers".setup_white_space_highlight(vim.fn.bufnr())]]
-)
-vim.cmd(
- [[autocmd BufReadPre *.tf,*.hcl packadd vim-terraform]]
-)
-vim.cmd([[augroup END]])
-
--- }}}
-
--- quickfix {{{
-vim.api.nvim_set_keymap(
- "n",
- "<C-q>o",
- ":copen<cr>",
- { silent = true, noremap = true }
-)
-vim.api.nvim_set_keymap(
- "n",
- "<C-q>z",
- ":cclose<cr>",
- { silent = true, noremap = true }
-)
-
-vim.api.nvim_set_keymap(
- "n",
- "<C-q>lo",
- ":lopen<cr>",
- { silent = true, noremap = true }
-)
-vim.api.nvim_set_keymap(
- "n",
- "<C-q>lz",
- ":lclose<cr>",
- { silent = true, noremap = true }
-)
-vim.api.nvim_set_keymap("n", "]q", ":cnext<cr>", { silent = true, noremap = true })
-vim.api.nvim_set_keymap("n", "[q", ":cprevious<cr>", { silent = true, noremap = true })
-vim.api.nvim_set_keymap("n", "]Q", ":cfirst<cr>", { silent = true, noremap = true })
-vim.api.nvim_set_keymap("n", "[Q", ":clast<cr>", { silent = true, noremap = true })
-vim.api.nvim_set_keymap("n", "]l", ":lnext<cr>", { silent = true, noremap = true })
-vim.api.nvim_set_keymap("n", "[l", ":lprevious<cr>", { silent = true, noremap = true })
-vim.api.nvim_set_keymap("n", "]L", ":lfirst<cr>", { silent = true, noremap = true })
-vim.api.nvim_set_keymap("n", "[L", ":llast<cr>", { silent = true, noremap = true })
--- }}}
-
--- firvish {{{
-require'firvish'.setup()
-vim.g.firvish_use_default_mappings=1
-require'vimrc'.setup_jq_function()
-require'vimrc'.setup_build_function()
--- }}}
-
--- {{{ trouble
-require"trouble".setup { }
--- }}}
-
--- {{{ tests
--- require"nvim-test".setup{}
--- vim.api.nvim_set_keymap(
--- "n",
--- "<leader>t",
--- "<cmd>TestFile<CR>",
--- {silent = true, noremap = true}
--- )
--- }}}
-
--- lsp {{{
-vim.cmd [[augroup vimrc_nvim_lsp_setup]]
-vim.cmd [[au!]]
-vim.cmd [[au VimEnter * lua require'vimrc.lsp'.setup()]]
-vim.cmd [[augroup END]]
--- }}}
-
--- dap {{{
-require('vimrc.dap').setup_dap()
-vim.cmd [[augroup vimrc_nvim_dap_setup]]
-vim.cmd [[au!]]
-vim.cmd [[au VimEnter * lua require('vimrc.dap').setup_dap()]]
-vim.cmd [[augroup END]]
--- }}}
-
--- terminal {{{
--- open close terminal
-vim.cmd [[command! Term :lua require('vimrc.term').toggle()]]
--- run current file
-vim.cmd [[command! Run :lua require('vimrc.term').run()]]
--- send selection
-vim.cmd [[command! -range Send :lua require('vimrc.term').sendSelection()]]
-vim.api.nvim_set_keymap(
- "t",
- "<c-q><c-w>",
- "<c-\\><c-n>",
- { silent = true, noremap = true }
-)
--- }}}
-
--- statusline {{{
--- require('el').setup {}
--- TODO: move to colortemplates
-vim.cmd [[hi! link Winbar StatusLine]]
--- }}}
-
--- init autocommand {{{
-vim.cmd([[augroup vimrc_init]])
-vim.cmd([[autocmd!]])
-vim.cmd(
- [[autocmd BufReadPre,FileReadPre *.rest :if !exists("g:vimrc_rest_nvim_loaded") | packadd vim-rest-console | let g:vimrc_rest_nvim_loaded = v:true | endif | :e]]
-)
-vim.cmd(
- [[autocmd TextYankPost * silent! lua vim.highlight.on_yank{on_visual=false, higroup="IncSearch", timeout=100}]]
-)
-vim.cmd(
- [[ autocmd TextYankPost * if v:event.operator is 'y' && v:event.regname is '' | execute 'OSCYankReg "' | endif ]]
-)
-vim.cmd(
- [[autocmd VimEnter * if filereadable(".exrc.lua") | call execute("luafile .exrc.lua") | endif]]
-)
-vim.cmd(
- [[autocmd VimEnter * if filereadable(".env") | echo execute("Dotenv") | call execute("Dotenv .env") | endif]]
-)
--- temp fix for screen redrawing issues
--- cmd(
--- [[autocmd BufEnter * mod]]
--- )
-vim.cmd([[augroup END]])
--- }}}
--- vim: fdm=marker
+local function build_init()
+ local _let_1_ = require("hotpot.api.make")
+ local build = _let_1_["build"]
+ local allowed_globals
+ do
+ local tbl_17_auto = {}
+ local i_18_auto = #tbl_17_auto
+ for n, _ in pairs(_G) do
+ local val_19_auto = n
+ if (nil ~= val_19_auto) then
+ i_18_auto = (i_18_auto + 1)
+ do end (tbl_17_auto)[i_18_auto] = val_19_auto
+ else
+ end
+ end
+ allowed_globals = tbl_17_auto
+ end
+ local opts = {verbosity = 1, compiler = {modules = {allowedGlobals = allowed_globals}}}
+ local function _3_(_241)
+ return _241
+ end
+ return build("/home/mike/dotnix/neovim/init.fnl", opts, ".+", _3_)
+end
+do
+ local hotpot = require("hotpot")
+ local setup = hotpot.setup
+ local build = hotpot.api.make.build
+ local uv = vim.loop
+ setup({provide_require_fennel = true, compiler = {modules = {correlate = true}, macros = {env = "_COMPILER", compilerEnv = _G, allowedGlobals = false}}})
+ local handle = uv.new_fs_event()
+ local path = vim.fn.expand("/home/mike/dotnix/neovim/init.fnl")
+ local function _4_()
+ return vim.schedule(build_init)
+ end
+ uv.fs_event_start(handle, path, {}, _4_)
+ local function _5_()
+ return uv.close(handle)
+ end
+ vim.api.nvim_create_autocmd("VimLeavePre", {callback = _5_})
+end
+vim.g["mapleader"] = " "
+vim.g["maplocalleader"] = " "
+vim.cmd("colorscheme gruvbox-material")
+for k_7_auto, v_8_auto in pairs({backup = "false", backupcopy = "yes"}) do
+ local _6_ = {k_7_auto, v_8_auto}
+ if ((_G.type(_6_) == "table") and (nil ~= (_6_)[1]) and ((_6_)[2] == "true")) then
+ local a_9_auto = (_6_)[1]
+ vim.opt[k_7_auto] = true
+ elseif ((_G.type(_6_) == "table") and (nil ~= (_6_)[1]) and ((_6_)[2] == "false")) then
+ local a_9_auto = (_6_)[1]
+ vim.opt[k_7_auto] = false
+ elseif ((_G.type(_6_) == "table") and (nil ~= (_6_)[1]) and (nil ~= (_6_)[2])) then
+ local a_9_auto = (_6_)[1]
+ local b_10_auto = (_6_)[2]
+ vim.opt[k_7_auto] = v_8_auto
+ else
+ end
+end
+do
+ local ts = require("nvim-treesitter.configs")
+ ts.setup[{highlight = {enable = true}}]()
+end
+local cmp = require("cmp")
+local snip
+local function _8_(args)
+ return (require("luasnip")).lsp_expand(args.body)
+end
+snip = _8_
+return cmp.setup({snippet = {expand = snip}, completion = {autocomplete = false}, mapping = cmp.mapping.preset.insert({["<C-b>"] = cmp.mapping.scroll_docs(-4), ["<C-A>"] = cmp.mapping.complete()}), sources = cmp.config.sources({{name = "conjure"}, {name = "nvim_lsp"}, {name = "path"}, {name = "luasnip"}})}) \ No newline at end of file