diff options
Diffstat (limited to 'neovim/init.lua')
| -rw-r--r-- | neovim/init.lua | 365 |
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 |
