diff --git a/eww-bar/.config/eww-bar/eww.yuck b/eww-bar/.config/eww-bar/eww.yuck index af78eec..01edf8f 100644 --- a/eww-bar/.config/eww-bar/eww.yuck +++ b/eww-bar/.config/eww-bar/eww.yuck @@ -37,10 +37,10 @@ "${round((1 - (EWW_DISK["/"].free / EWW_DISK["/"].total)) * 100, 0)}%") (box :class "metric" :orientation "v" (label :class "metric-icon":text "") - "${round(EWW_RAM, 0)}%") + "${round(EWW_RAM.used_mem_perc, 0)}%") (box :class "metric" :orientation "v" (label :class "metric-icon" :text "") - "${round(EWW_CPU_USAGE.avg, 0)}%") + "${round(EWW_CPU.avg, 0)}%") (box :class "metric" (date)))) diff --git a/nixpkgs/.config/nixpkgs/modules/base.nix b/nixpkgs/.config/nixpkgs/modules/base.nix index 9ed27b0..88f1667 100644 --- a/nixpkgs/.config/nixpkgs/modules/base.nix +++ b/nixpkgs/.config/nixpkgs/modules/base.nix @@ -97,6 +97,7 @@ in kmonad gitAndTools.delta git-fuzzy + codelldb ] ) ( diff --git a/nixpkgs/.config/nixpkgs/modules/desktop/alacritty.nix b/nixpkgs/.config/nixpkgs/modules/desktop/alacritty.nix index a08deaa..b6c82e1 100644 --- a/nixpkgs/.config/nixpkgs/modules/desktop/alacritty.nix +++ b/nixpkgs/.config/nixpkgs/modules/desktop/alacritty.nix @@ -29,7 +29,7 @@ in double_click.threshold = 300; triple_click.threshold = 300; hide_when_typing = true; - url.launcher.program = "xdg-open"; + #hints.launcher.program = "xdg-open"; }; key_bindings = [ diff --git a/nixpkgs/.config/nixpkgs/overlay/default.nix b/nixpkgs/.config/nixpkgs/overlay/default.nix index 436087b..6ee8b02 100644 --- a/nixpkgs/.config/nixpkgs/overlay/default.nix +++ b/nixpkgs/.config/nixpkgs/overlay/default.nix @@ -12,6 +12,7 @@ self: super: { git-fuzzy = super.callPackage ../packages/git-fuzzy.nix { }; nixGL = import sources.nixGL { }; scr = super.callPackage ../packages/scr.nix { }; + codelldb = super.callPackage ../packages/codelldb.nix { }; my-st = super.callPackage ../packages/st/st-tanish2002 { }; kmonad = import "${sources.kmonad}/nix"; } diff --git a/nixpkgs/.config/nixpkgs/packages/codelldb.nix b/nixpkgs/.config/nixpkgs/packages/codelldb.nix new file mode 100644 index 0000000..fd3e022 --- /dev/null +++ b/nixpkgs/.config/nixpkgs/packages/codelldb.nix @@ -0,0 +1,9 @@ +{ stdenv, symlinkJoin, makeWrapper, writeScriptBin, vscode-extensions }: +writeScriptBin "codelldb" '' + ${vscode-extensions.vadimcn.vscode-lldb}/share/vscode/extensions/vadimcn.vscode-lldb/adapter/.codelldb-wrapped_ \ + --liblldb ${vscode-extensions.vadimcn.vscode-lldb}/share/vscode/extensions/vadimcn.vscode-lldb/lldb/lib/liblldb.so $@ + '' +#writeScriptBin "codelldb" '' + #${vscode-extensions.vadimcn.vscode-lldb}/share/vscode/extensions/vadimcn.vscode-lldb/adapter/.codelldb-wrapped_ \ + #--liblldb ${vscode-extensions.vadimcn.vscode-lldb}/share/vscode/extensions/vadimcn.vscode-lldb/lldb/lib/liblldb.so $@ + #'' diff --git a/nixpkgs/.config/nixpkgs/packages/vscode-debugger-thingy.nix b/nixpkgs/.config/nixpkgs/packages/vscode-debugger-thingy.nix new file mode 100644 index 0000000..64f3be7 --- /dev/null +++ b/nixpkgs/.config/nixpkgs/packages/vscode-debugger-thingy.nix @@ -0,0 +1,32 @@ +{ fetchFromGitHub, stdenvNoCC, lib, makeWrapper, extraPackages ? [] }: +let + binPath = lib.makeBinPath ([] ++ extraPackages); +in +stdenvNoCC.mkDerivation rec { + pname = "scr"; + version = "2.1"; + src = fetchFromGitHub { + owner = "6gk"; + repo = "scr"; + rev = "v${version}"; + sha256 = "0fgmv99zlppi5wa2qylbvnblk9kc6i201byz8m79ld8cwiymabi2"; + }; + + nativeBuildInputs = [ makeWrapper ]; + installPhase = "install -m755 -D ./scr $out/bin/scr"; + postFixup = '' + wrapProgram "$out/bin/scr" --prefix PATH : ${binPath} + ''; + meta = { + description = "Super CRappy SCReenshot SCRipt"; + longDescription = '' + Super CRappy SCReenshot SCRipt + (and recording ^) + A SCRipt for Sound Cloud Rappers + ''; + homepage = "https://github.com/6gk/scr"; + maintainers = with lib.maintainers; [ elkowar ]; + license = lib.licenses.mit; + platforms = lib.platforms.all; + }; +} diff --git a/nvim/.config/nvim/amulet.vim b/nvim/.config/nvim/amulet.vim new file mode 100644 index 0000000..d195fd2 --- /dev/null +++ b/nvim/.config/nvim/amulet.vim @@ -0,0 +1,257 @@ +if exists("b:did_ftplugin") + finish +endif + +setlocal shiftwidth=2 +setlocal tabstop=2 +setlocal expandtab +setlocal comments=s1:(*,mb:*,ex:*) +setlocal commentstring=(*\ %s\ *) + +let b:did_ftplugin = 1 + +if has('nvim-0.3.2') + let s:vtext_ns = nvim_create_namespace('amulet') +endif + +let b:autostart_amc = has('nvim') ? 1 : 0 +let b:amc_deps = [] + +hi! AmuletError cterm=underline ctermfg=red +hi! AmuletWarn cterm=underline ctermfg=yellow +hi! AmuletNote cterm=underline ctermfg=cyan + +hi! AmuletErrorVtxt ctermfg=red cterm=italic +hi! AmuletWarnVtxt ctermfg=yellow cterm=italic +hi! AmuletNoteVtxt ctermfg=cyan cterm=italic + +sign define amuletError text=! texthl=AmuletError +sign define amuletWarning text=* texthl=AmuletWarn +sign define amuletNote text=* texthl=AmuletNote + +function! s:HighlightRange(group, line, start_col, length) + " Vim columns are 1-indexed, but nvim's are 0-indexed + if has('nvim-0.3.2') + let start_col = str2nr(a:start_col) - 1 + let end_col = str2nr(a:length) + start_col + let line = str2nr(a:line) - 1 + call nvim_buf_add_highlight(bufnr(''), s:vtext_ns, a:group, line, start_col, end_col) + else + call matchaddpos(a:group, [ [a:line, a:start_col, a:length] ]) + end +endfunction + +function! AmuletStart(...) + if has('nvim') + if exists("b:amulet_pid") + return 0 + end + let b:amulet_pid = jobstart(["amc", "repl", "--port", a:0 == 1 ? a:1 : 6000]) + let b:amulet_port = a:0 == 1 ? a:1 : 6000 + else + echo "Having vim manage the compiler is only supported on nvim" + end +endfunction + +function! AmuletStop() + if has('nvim') + if exists("b:amulet_pid") + call jobstop(b:amulet_pid) + unlet b:amulet_pid b:amulet_port + end + else + echo "Having vim manage the compiler is only supported on nvim" + end +endfunction + +function! s:CallAmc(...) + let cmd = shellescape(join(a:000)) + + if exists("b:amulet_pid") + let cmd = cmd . " --port " . b:amulet_port + endif + + let res = system('amc connect ' . cmd) + if res =~ "Failed to connect to server on port" + throw "Couldn't connect to a running amc" + elseif res =~ "Invalid option `--client`" + throw "Installed version of amc doesn't have client/server support" + else + return res + endif +endfunction + + +" Trashes both qflist and matches +function! AmuletLoad(verbose, qf) + let our_bufnr = bufnr('') + let ourpos = getpos('.') + silent write + call clearmatches() + call setqflist([]) + + let file = expand("%:p") + + try + let out = split(call("s:CallAmc", [":l", file]), '\n') + catch /version/ + echo "Your version of amc is too old to have client/server support" + catch /amc/ + echo "Failed to connect to a running amc" + return -1 + endtry + + let err_msg_pat = "\\v(error|warning|note)( \\([EWN][0-9]{4}\\))?$" + let nerrors = 0 + let nwarns = 0 + + execute "sign unplace * file=" . expand("%p") + if has('nvim-0.3.2') + call nvim_buf_clear_namespace(0, s:vtext_ns, 0, -1) + endif + + if len(out) > 1 + let idx = 0 + while idx < len(out) + let line = out[idx] + if line =~ err_msg_pat + let err_msg_idx = idx + 1 + while match(out[err_msg_idx], "\\v([0-9]+)?\\s*\u2502") == 0 + let err_msg_idx += 1 + endwhile + + let next = match(out[err_msg_idx:], err_msg_pat) + if next == -1 + let next = len(out) + else + let next += err_msg_idx + endif + let range = matchlist(line, "\\v\\[([0-9]+):([0-9]+) ..([0-9]+):([0-9]+)") + let lineno = range[1] + + let err_msg = out[err_msg_idx] + if err_msg_idx == idx + 1 + let idx += 1 + else + let err_msg = join(map(out[err_msg_idx:next - 1], "trim(v:val)")) + let idx = next + endif + + caddexpr expand("%:p") . ":" . lineno . ":" . err_msg + + let group = (match(line, "warning") != -1) ? "AmuletWarn" : (match(line, "note$") != -1) ? "AmuletNote" : "AmuletError" + let sign = (match(line, "warning") != -1) ? "amuletWarning" : (match(line, "note$") != -1) ? "amuletNote" : "amuletError" + + for l in range(range[1], range[3]) + execute "sign place " . (idx + l) . " line=" . l . " name=" . sign + endfor + + if range[1] == range[3] + call s:HighlightRange(group, lineno, range[2], range[4] - range[2] + 1) + if has('nvim-0.3.2') + call nvim_buf_set_virtual_text(0, s:vtext_ns, str2nr(lineno - 1), [[err_msg, group . "Vtxt"]], {}) + endif + endif + + if match(line, "warning$") != -1 + let nwarns += 1 + else + let nerrors += 1 + end + else + let idx += 1 + endif + endwhile + + let errs = (nerrors == 1) ? "error" : "errors" + let warns = (nwarns == 1) ? "warning" : "warnings" + + if (nerrors == 0) && a:verbose + echo "Beware: " . nwarns . " " . warns + elseif nerrors != 0 + echo "Compilation failed with " . nerrors . " " . errs . " and " . nwarns . " " . warns + end + if (nerrors != 0 || nwarns != 0) && a:qf == 'qf' + copen + end + call setpos('.', ourpos) + return nerrors + else + if a:verbose + echo "Loaded " . expand("%p") . " successfully." + end + call setpos('.', ourpos) + return 0 + endif +endfunction + +function! AmuletType() + let ourpos = getpos('.') + echo trim(s:CallAmc(":t", expand(""))) + call setpos('.', ourpos) +endfunction + +function! AmuletEval(mode) + let ourpos = getpos('.') + if a:mode == 'v' + let [line_start, column_start] = getpos("'<")[1:2] + let [line_end, column_end] = getpos("'>")[1:2] + + if line_start != line_end + return + endif + + let expr = getline(line_start)[column_start - 1 : column_end - 1] + echo trim(s:CallAmc(expr)) + else + let expr = input("Evaluate: ") + redraw + echo trim(s:CallAmc(expr)) + end + call setpos('.', ourpos) +endfunction + +function! AmuletDep(...) + for path in a:000 + if filereadable(path) + call add(b:amc_deps, path) + else + echo "File " . file . " not readable by current user" + endif + endfor + call AmuletLoad(1, '') +endfunction + +function! AmuletParseDeps() + let b:amc_deps = [] + let deplist = [] + silent keeppatterns %s/(\* amulet\.vim: \(.*\) \*)/\=add(deplist,submatch(1))/gne + call call('AmuletDep', deplist) +endfunction + +function! AmuletComplete(findstart, base) + if a:findstart + " locate the start of the word + let line = getline('.') + let start = col('.') - 1 + while start > 0 && !(line[start - 1] =~ ' ') + echo line[start - 1] + let start -= 1 + endwhile + return start + else + return split(s:CallAmc(":complete", a:base), "\n") + endif +endfunction + +set omnifunc=AmuletComplete + +nnoremap t :call AmuletType() +nnoremap l :call AmuletLoad(1,'') +nnoremap L :call AmuletLoad(0,'qf') +vnoremap e :call AmuletEval('v') +nnoremap e :call AmuletEval('n') +command! -nargs=? AmuletStartServer :call AmuletStart() +command! -complete=file -nargs=+ AmuletDepend :call AmuletDep() +command! -nargs=0 AmuletFindDepends :call AmuletParseDeps() +cnoreabbr amcdep AmuletDepend diff --git a/nvim/.config/nvim/fnl/dots/plugins.fnl b/nvim/.config/nvim/fnl/dots/plugins.fnl index 15018a4..589c3c6 100644 --- a/nvim/.config/nvim/fnl/dots/plugins.fnl +++ b/nvim/.config/nvim/fnl/dots/plugins.fnl @@ -1,202 +1,340 @@ + + + + + + + (module dots.plugins - {require-macros [macros]}) + {require {a aniseed.core} + require-macros [macros]}) -(packer-use - "/home/leon/coding/projects/nvim-gehzu" {} - "/home/leon/coding/projects/yuck.vim" {} - :elkowar/antifennel-nvim {:config #(set vim.g.antifennel_executable "/home/leon/tmp/antifennel/antifennel")} - :elkowar/kmonad.vim {} - :ruanyl/vim-gh-line {} - :rhysd/conflict-marker.vim {} - :wellle/visual-split.vim {} - :sindrets/diffview.nvim {} - :folke/persistence.nvim {:mod "dots.plugins.persistence"} - :folke/zen-mode.nvim {:cmd ["ZenMode"] - :mod "dots.plugins.zen-mode"} - :folke/twilight.nvim {:mod "dots.plugins.twilight"} - :TimUntersberger/neogit {:mod "dots.plugins.neogit" - :cmd ["Neogit"]} - :lifepillar/vim-gruvbox8 {:opt false - :config - #(do (set vim.g.gruvbox_italics 0) - (set vim.g.gruvbox_italicise_strings 0) - (set vim.g.gruvbox_filetype_hi_groups 1) - (set vim.g.gruvbox_plugin_hi_groups 1) - (vim.cmd "colorscheme gruvbox8") - (req dots.utils.highlight :SignColumn {:bg (. (require :dots.colors) :dark0)}))} - ;(req dots.utils.highlight :LspDiagnosticsUnderlineError {:gui "underline"}))} +(defn abuse [use stuff rest] + (use (a.assoc rest 1 stuff))) - :nvim-telescope/telescope.nvim {:mod "dots.plugins.telescope" - :cmd ["Telescope"] - :requires [:nvim-lua/popup.nvim - :nvim-lua/plenary.nvim]} - :nvim-telescope/telescope-packer.nvim {} - :nvim-telescope/telescope-frecency.nvim {:requires [:tami5/sql.nvim] - :opt false} - ;:config #((. (require :telescope) :load_extension) "frecency")} + + +(local packer (require :packer)) +(packer.startup + (fn [use] + (abuse + use "/home/leon/coding/projects/nvim-gehzu" {}) + (abuse + use "/home/leon/coding/projects/yuck.vim" {}) + (abuse + use :nvim-lua/plenary.nvim {}) + (abuse + use :elkowar/antifennel-nvim {:opt false :config #(set vim.g.antifennel_executable "/home/leon/tmp/antifennel/antifennel")}) + (abuse + use :elkowar/kmonad.vim {}) + + (abuse + use :ruanyl/vim-gh-line {}) + (abuse + use :rhysd/conflict-marker.vim {}) + (abuse + use :wellle/visual-split.vim {}) + (abuse + use :sindrets/diffview.nvim {}) + (abuse + use :folke/persistence.nvim {:opt false :config #(require "dots.plugins.persistence")}) + (abuse + use :folke/zen-mode.nvim {:cmd ["ZenMode"] + :opt false :config #(require "dots.plugins.zen-mode")}) + (abuse + use :folke/twilight.nvim {:opt false :config #(require "dots.plugins.twilight")}) + (abuse + use :TimUntersberger/neogit {:opt false :config #(require "dots.plugins.neogit") + :cmd ["Neogit"]}) + + (abuse + use :lifepillar/vim-gruvbox8 {:opt false + :config + #(do (set vim.g.gruvbox_italics 0) + (set vim.g.gruvbox_italicise_strings 0) + (set vim.g.gruvbox_filetype_hi_groups 1) + (set vim.g.gruvbox_plugin_hi_groups 1) + (vim.cmd "colorscheme gruvbox8") + ((. (require :dots.utils) :highlight) :SignColumn {:bg (. (require :dots.colors) :dark0)}))}) + ;(req dots.utils.highlight :SignColumn {:bg (. (require :dots.colors) :dark0)}))} + ;(req dots.utils.highlight :LspDiagnosticsUnderlineError {:gui "underline"}))} + + (abuse + use :nvim-telescope/telescope.nvim {:opt false :config #(require "dots.plugins.telescope") + :cmd ["Telescope"] + :requires [:nvim-lua/popup.nvim + :nvim-lua/plenary.nvim]}) + + (abuse + use :nvim-telescope/telescope-packer.nvim {}) + (abuse + use :nvim-telescope/telescope-frecency.nvim {:requires [:tami5/sql.nvim] + :opt false}) + ;:opt false :config #((. (require :telescope) :load_extension) "frecency")} - :kyazdani42/nvim-web-devicons {} + (abuse + use :kyazdani42/nvim-web-devicons {}) - :nvim-treesitter/nvim-treesitter {:mod "dots.plugins.treesitter" - :event ["BufEnter"] - :run ":TSUpdate"} - :JoosepAlviste/nvim-ts-context-commentstring {:event ["BufEnter"] - :requires [:nvim-treesitter/nvim-treesitter]} - :nvim-treesitter/playground {:event ["BufEnter"] - :requires [:nvim-treesitter/nvim-treesitter]} + (abuse + use :nvim-treesitter/nvim-treesitter {:opt false :config #(require "dots.plugins.treesitter") + :event ["BufEnter"] + :run ":TSUpdate"}) + + (abuse + use :JoosepAlviste/nvim-ts-context-commentstring {:event ["BufEnter"] + :requires [:nvim-treesitter/nvim-treesitter]}) + (abuse + use :nvim-treesitter/playground {:event ["BufEnter"] + :requires [:nvim-treesitter/nvim-treesitter]}) ;:p00f/nvim-ts-rainbow {} ;:romgrk/nvim-treesitter-context {} ;:code-biscuits/nvim-biscuits {:requires [:nvim-treesitter/nvim-treesitter] - ;:event ["BufReadPost"] - ;:config #((. (require "nvim-biscuits") :setup) {})} + ;:event ["BufReadPost"] + ;:opt false :config #((. (require "nvim-biscuits") :setup) {})} - :jiangmiao/auto-pairs {} + (abuse + use :jiangmiao/auto-pairs {}) - :folke/which-key.nvim {} + (abuse + use :folke/which-key.nvim {}) ; json query stuff ;:gennaro-tedesco/nvim-jqx {:ft ["json"]} - :Olical/aniseed {:branch "master"}; :tag "v3.16.0"} + (abuse use :Olical/aniseed {:branch "develop"}); :tag "v3.16.0"} + ;(abuse use :Olical/aniseed {:tag "v3.21.0"}); :tag "v3.16.0"} + ; (abuse use :Olical/aniseed {:branch "master"}); :tag "v3.16.0"} ;:Olical/aniseed {}; :tag "v3.16.0"} ; general purpose lua wrappers for nvim stuff - :norcalli/nvim.lua {} + (abuse + use :norcalli/nvim.lua {}) - :Famiu/feline.nvim {:mod "dots.plugins.feline"} + (abuse + use :Famiu/feline.nvim {:opt false :config #(require "dots.plugins.feline")}) + ;config #(require "dots.plugins.feline")} - :akinsho/nvim-bufferline.lua {:mod "dots.plugins.bufferline"} - ;:romgrk/barbar.nvim {:mod "dots.plugins.barbar"} + (abuse + use :akinsho/nvim-bufferline.lua {:opt false :config #(require "dots.plugins.bufferline")}) + ;:romgrk/barbar.nvim {:opt false :config #(require "dots.plugins.barbar")} - :sindrets/diffview.nvim {:cmd ["DiffviewOpen" "DiffviewToggleFiles"] - :mod "dots.plugins.diffview"} - :tweekmonster/startuptime.vim {:cmd ["StartupTime"]} - :tpope/vim-repeat {} + (abuse + use + :sindrets/diffview.nvim {:cmd ["DiffviewOpen" "DiffviewToggleFiles"] + :opt false :config #(require "dots.plugins.diffview")}) + (abuse + use :tweekmonster/startuptime.vim {:cmd ["StartupTime"]}) + (abuse + use :tpope/vim-repeat {}) - :lewis6991/gitsigns.nvim {:after ["vim-gruvbox8"] - :mod "dots.plugins.gitsigns"} + (abuse + use :lewis6991/gitsigns.nvim {:after ["vim-gruvbox8"] + :opt false :config #(require "dots.plugins.gitsigns")}) - :tpope/vim-fugitive {} - :preservim/nerdcommenter {} - :godlygeek/tabular {:cmd ["Tabularize"]} ; :Tab /regex can align code on occurrences of the given regex. I.e. :Tab /= aligns all = signs in a block. - :tpope/vim-surround {} - :nathanaelkane/vim-indent-guides {} ; Can be toggled using ig (intent-guides) + (abuse + use :tpope/vim-fugitive {}) + (abuse + use :preservim/nerdcommenter {}) + (abuse + use :godlygeek/tabular {:cmd ["Tabularize"]}) ; :Tab /regex can align code on occurrences of the given regex. I.e. :Tab /= aligns all = signs in a block. + (abuse + use :tpope/vim-surround {}) + (abuse + use :nathanaelkane/vim-indent-guides {}) ; Can be toggled using ig (intent-guides) ; to select current word. to select next occurrence. ; with multiple lines selected in Visual mode, to insert cursor in each line. I not i to insert in Visual-mode. - :terryma/vim-multiple-cursors {} - :mg979/vim-visual-multi {} - :hauleth/sad.vim {} ; Use siw instead of ciw. when using . afterwards, will find the next occurrence of the changed word and change it too - :wellle/targets.vim {} ; more text objects. IE: cin (change in next parens). generally better handling of surrounding objects. + (abuse + use :terryma/vim-multiple-cursors {}) + (abuse + use :mg979/vim-visual-multi {}) + (abuse + use :hauleth/sad.vim {}) ; Use siw instead of ciw. when using . afterwards, will find the next occurrence of the changed word and change it too + (abuse + use :wellle/targets.vim {}) ; more text objects. IE: cin (change in next parens). generally better handling of surrounding objects. - :iamcco/markdown-preview.nvim {:run vim.fn.mkdp#util#install} + ; (abuse use :iamcco/markdown-preview.nvim {:run vim.fn.mkdp#util#install}) - :rcarriga/nvim-dap-ui {:opt false - :config #(req dapui.setup) - :requires [:mfussenegger/nvim-dap]} - :mfussenegger/nvim-dap {:opt false} - ;:mod "dots.plugins.nvim-dap"} - :nvim-telescope/telescope-dap.nvim {:opt false - :requires [:mfussenegger/nvim-dap - :nvim-telescope/telescope.nvim]} + (abuse + use + :rcarriga/nvim-dap-ui {:opt false + :opt false :config #((. (require :dapui) :setup)) + ;:opt false :config #(req dapui.setup) + :requires [:mfussenegger/nvim-dap]}) + + (abuse + use :mfussenegger/nvim-dap {:opt false}) + ;:opt false :config #(require "dots.plugins.nvim-dap")} + (abuse + use + :nvim-telescope/telescope-dap.nvim {:opt false + :requires [:mfussenegger/nvim-dap + :nvim-telescope/telescope.nvim]}) ; code-related ----------------------------------------- <<< - :ray-x/lsp_signature.nvim {:events [:BufEnter]} - "/home/leon/coding/prs/trouble.nvim" {:mod "dots.plugins.trouble" - :cmd ["Trouble" "TroubleClose" "TroubleRefresh" "TroubleToggle"]} - ;:folke/lsp-trouble.nvim {:mod "dots.plugins.trouble" + + (abuse + use :ray-x/lsp_signature.nvim {:events [:BufEnter]}) + (abuse + use + "/home/leon/coding/prs/trouble.nvim" {:opt false :config #(require "dots.plugins.trouble") + :cmd ["Trouble" "TroubleClose" "TroubleRefresh" "TroubleToggle"]}) + ;:folke/lsp-trouble.nvim {:opt false :config #(require "dots.plugins.trouble") ;:cmd ["Trouble" "TroubleClose" "TroubleRefresh" "TroubleToggle"]} - :simrat39/symbols-outline.nvim {:mod "dots.plugins.symbols-outline"} - :neovim/nvim-lspconfig {} + (abuse + use + :simrat39/symbols-outline.nvim {:opt false :config #(require "dots.plugins.symbols-outline")}) + (abuse + use + :neovim/nvim-lspconfig {}) - ;:hrsh7th/nvim-compe {:mod "dots.plugins.compe"} + ;:hrsh7th/nvim-compe {:opt false :config #(require "dots.plugins.compe")} ;:/home/leon/coding/prs/nvim-compe {:event [:InsertEnter] - ;:mod "dots.plugins.compe"} - :ms-jpq/coq_nvim {:mod "dots.plugins.coq-nvim" - :branch "coq"} + ;:opt false :config #(require "dots.plugins.compe")} + ;:ms-jpq/coq_nvim {:opt false :config #(require "dots.plugins.coq-nvim") + ;:branch "coq" - :ms-jpq/coq.artifacts {:branch "artifacts"} + ;:ms-jpq/coq.artifacts {:branch "artifacts"} + + (abuse use :hrsh7th/cmp-nvim-lsp {}) + (abuse use :hrsh7th/cmp-buffer {}) + (abuse + use + :hrsh7th/nvim-cmp + {:opt false + :requires [:hrsh7th/cmp-nvim-lsp :hrsh7th/cmp-buffer] + :config #(require "dots.plugins.cmp")}) + (abuse + use + :tami5/lspsaga.nvim {:after "vim-gruvbox8" + :opt false + :config #(require "dots.plugins.lspsaga")}) - :glepnir/lspsaga.nvim {:after "vim-gruvbox8" - :mod "dots.plugins.lspsaga"} - - :sbdchd/neoformat {} + (abuse + use + :sbdchd/neoformat {}) ;; -------------------- - :AndrewRadev/splitjoin.vim {} + ; (use :AndrewRadev/splitjoin.vim {}) - :Olical/conjure {} - :tami5/compe-conjure {:requires [:Olical/conjure]} + (abuse + use + :Olical/conjure {}) - :ciaranm/detectindent {:mod "dots.plugins.detect-indent"} - :pechorin/any-jump.vim {} - :justinmk/vim-sneak {:mod "dots.plugins.sneak"} - :psliwka/vim-smoothie {} - :editorconfig/editorconfig-vim {} - :tommcdo/vim-exchange {} + (abuse + use + :tami5/compe-conjure {:requires [:Olical/conjure]}) + + (abuse + use + :ciaranm/detectindent {:opt false :config #(require "dots.plugins.detect-indent")}) + (abuse + use :pechorin/any-jump.vim {}) + (abuse + use :justinmk/vim-sneak {:opt false :config #(require "dots.plugins.sneak")}) + (abuse + use :psliwka/vim-smoothie {}) + (abuse + use :editorconfig/editorconfig-vim {}) + (abuse + use :tommcdo/vim-exchange {}) ;:frazrepo/vim-rainbow {} ;:bhurlow/vim-parinfer {:ft ["fennel" "carp" "lisp" "elisp"]} - :eraserhd/parinfer-rust {:run "cargo build --release"} + (abuse use :eraserhd/parinfer-rust {:run "cargo build --release"}) + ;:/home/leon/coding/prs/parinfer-rust {} ;"elkowar/parinfer-rust" {:run "cargo build --release" ;:branch "yuck"} - :bduggan/vim-raku {:ft ["raku"]} - :LnL7/vim-nix {:ft ["nix"]} + (abuse + use :bduggan/vim-raku {:ft ["raku"]}) + (abuse + use :LnL7/vim-nix {:ft ["nix"]}) - :kevinoid/vim-jsonc {} + (abuse + use :kevinoid/vim-jsonc {}) - :norcalli/nvim-colorizer.lua {:mod "dots.plugins.nvim-colorizer"} - :pangloss/vim-javascript {} ; syntax highlighting JS - :ianks/vim-tsx {} - :leafgarland/typescript-vim {} - ;:sheerun/vim-polyglot {:event [:BufEnter]} ; Syntax highlighting for most languages - :HerringtonDarkholme/yats.vim {} ; typescript syntax highlighting - :mxw/vim-jsx {} - :mattn/emmet-vim {:mod "dots.plugins.emmet"} + (abuse + use :norcalli/nvim-colorizer.lua {:opt false :config #(require "dots.plugins.nvim-colorizer")}) + (abuse + use :pangloss/vim-javascript {}) ; syntax highlighting JS + (abuse + use :ianks/vim-tsx {}) + (abuse + use :leafgarland/typescript-vim {}) + (abuse + use :HerringtonDarkholme/yats.vim {}) ; typescript syntax highlighting + (abuse + use :mxw/vim-jsx {}) + (abuse + use :mattn/emmet-vim {:opt false :config #(require "dots.plugins.emmet")}) - :purescript-contrib/purescript-vim {} + (abuse + use :purescript-contrib/purescript-vim {}) - :derekelkins/agda-vim {:ft ["agda"]} - :neovimhaskell/haskell-vim { :ft ["haskell"]} + (abuse + use :derekelkins/agda-vim {:ft ["agda"]}) + (abuse + use :neovimhaskell/haskell-vim { :ft ["haskell"]}) - :rust-lang/rust.vim {:ft ["rust"] - :requires ["mattn/webapi-vim"] - :config #(do (set vim.g.rustfmt_fail_silently 1))} + (abuse + use + :rust-lang/rust.vim {:ft ["rust"] + :requires ["mattn/webapi-vim"] + :opt false :config #(do (set vim.g.rustfmt_fail_silently 1))}) - :simrat39/rust-tools.nvim {:requires ["nvim-lua/popup.nvim" "nvim-lua/plenary.nvim"]} + (abuse + use + :simrat39/rust-tools.nvim {:requires ["nvim-lua/popup.nvim" "nvim-lua/plenary.nvim"]}) - :qnighy/lalrpop.vim {} + ; (use + ; :Saecki/crates.nvim {:requires ["nvim-lua/plenary.nvim"] + ; :event ["BufRead Cargo.toml"] + ; :opt false :config #((. (require "crates") :setup))}) - :edwinb/idris2-vim {:ft ["idris2"]} + (abuse + use + :qnighy/lalrpop.vim {}) + + (abuse + use + :edwinb/idris2-vim {:ft ["idris2"]}) ;:ShinKage/nvim-idris2 {} - :vmchale/ats-vim {:ft ["ats" "dats" "sats"]} - :google/vim-jsonnet {} + (abuse + use + :vmchale/ats-vim {:ft ["ats" "dats" "sats"]}) - :bakpakin/fennel.vim {} + (abuse + use + :google/vim-jsonnet {}) - :evanleck/vim-svelte {}) + (abuse + use + :bakpakin/fennel.vim {}) + (abuse + use + :evanleck/vim-svelte {}))) ; >>> diff --git a/nvim/.config/nvim/fnl/dots/plugins/bufferline.fnl b/nvim/.config/nvim/fnl/dots/plugins/bufferline.fnl index 9159464..56a6674 100644 --- a/nvim/.config/nvim/fnl/dots/plugins/bufferline.fnl +++ b/nvim/.config/nvim/fnl/dots/plugins/bufferline.fnl @@ -65,4 +65,4 @@ (utils.highlight :BufferLineInfoSelected {:bg colors.neutral_aqua :fg colors.dark0 :gui "NONE"}) - +(defn foo [] (print "hi")) diff --git a/nvim/.config/nvim/fnl/dots/plugins/cmp.fnl b/nvim/.config/nvim/fnl/dots/plugins/cmp.fnl new file mode 100644 index 0000000..f590dc8 --- /dev/null +++ b/nvim/.config/nvim/fnl/dots/plugins/cmp.fnl @@ -0,0 +1,13 @@ +(module dots.plugins.cmp + {autoload {a aniseed.core + cmp cmp}}) + + +(cmp.setup + {:mapping {: (cmp.mapping.scroll_docs -4) + : (cmp.mapping.scroll_docs 4) + : (cmp.mapping.complete) + : #(do (cmp.mapping.close) (vim.cmd "stopinsert")) + : (cmp.mapping.confirm {:select true})} + :sources [{:name "nvim_lsp"} + {:name "buffer"}]}) diff --git a/nvim/.config/nvim/fnl/dots/plugins/coq-nvim.fnl b/nvim/.config/nvim/fnl/dots/plugins/coq-nvim.fnl index 12d874e..1085c83 100644 --- a/nvim/.config/nvim/fnl/dots/plugins/coq-nvim.fnl +++ b/nvim/.config/nvim/fnl/dots/plugins/coq-nvim.fnl @@ -4,7 +4,8 @@ (set vim.g.coq_settings {:limits.completion_auto_timeout 1 :clients.lsp.weight_adjust 2 - :clients.tree_sitter.enabled false}) + :clients.tree_sitter.enabled false + :display.icons.mode "short"}) (vim.cmd "autocmd! InsertEnter * COQnow --shut-up") diff --git a/nvim/.config/nvim/fnl/dots/plugins/feline.fnl b/nvim/.config/nvim/fnl/dots/plugins/feline.fnl index 5487a49..7711a39 100644 --- a/nvim/.config/nvim/fnl/dots/plugins/feline.fnl +++ b/nvim/.config/nvim/fnl/dots/plugins/feline.fnl @@ -10,7 +10,6 @@ feline-lsp feline.providers.lsp} require-macros [macros]}) - (local modes {:n {:text "NORMAL" :color colors.neutral_aqua} :i {:text "INSERT" :color colors.neutral_yellow} diff --git a/nvim/.config/nvim/fnl/dots/plugins/lsp.fnl b/nvim/.config/nvim/fnl/dots/plugins/lsp.fnl index 82342b7..d4de3b7 100644 --- a/nvim/.config/nvim/fnl/dots/plugins/lsp.fnl +++ b/nvim/.config/nvim/fnl/dots/plugins/lsp.fnl @@ -2,7 +2,8 @@ {autoload {a aniseed.core lsp lspconfig lsp-configs lspconfig/configs - utils dots.utils} + utils dots.utils + cmp_nvim_lsp cmp_nvim_lsp} require-macros [macros]}) @@ -51,8 +52,11 @@ (def default-capabilities (let [capabilities (vim.lsp.protocol.make_client_capabilities)] (set capabilities.textDocument.completion.completionItem.snippetSupport true) + (cmp_nvim_lsp.update_capabilities capabilities) capabilities)) +(print cmp_nvim_lsp) + (fn init-lsp [lsp-name ?opts] "initialize a language server with defaults" (let [merged-opts (a.merge {:on_attach on_attach :capabilities default-capabilities} (or ?opts {}))] @@ -76,16 +80,17 @@ (init-lsp :yamlls) (init-lsp :html) (init-lsp :svelte) +(init-lsp :elmls) ;(init-lsp :clangd) ;(init-lsp :ccls) -(when (not lsp.ewwls) - (set lsp-configs.ewwls - {:default_config {:cmd [ "/home/leon/coding/projects/ls-eww/crates/ewwls/target/debug/ewwls"] - :filetypes ["yuck"] - :root_dir (fn [fname] (or (lsp.util.find_git_ancestor fname) (vim.loop.os_homedir))) - :settings {}}})) +;(when (not lsp.ewwls) + ;(set lsp-configs.ewwls + ;{:default_config {:cmd [ "/home/leon/coding/projects/ls-eww/crates/ewwls/target/debug/ewwls"] + ;:filetypes ["yuck"] + ;:root_dir (fn [fname] (or (lsp.util.find_git_ancestor fname) (vim.loop.os_homedir))) + ;:settings {}}})) (init-lsp :ewwls) @@ -105,8 +110,9 @@ (let [rust-tools (require "rust-tools")] (rust-tools.setup {:tools {:inlay_hints {:show_parameter_hints false} :autoSetHints false} - :server {:on_attach on_attach - :cmd ["/home/leon/coding/prs/rust-analyzer/target/release/rust-analyzer"]}})) + :server {:on_attach on_attach}})) + ;:capabilities default-capabilities}})) + ;:cmd ["/home/leon/coding/prs/rust-analyzer/target/release/rust-analyzer"]}})) (let [sumneko_root_path (.. vim.env.HOME "/.local/share/lua-language-server") sumneko_binary (.. sumneko_root_path "/bin/Linux/lua-language-server")] diff --git a/nvim/.config/nvim/fnl/dots/plugins/treesitter.fnl b/nvim/.config/nvim/fnl/dots/plugins/treesitter.fnl index 040744c..e7a98d1 100644 --- a/nvim/.config/nvim/fnl/dots/plugins/treesitter.fnl +++ b/nvim/.config/nvim/fnl/dots/plugins/treesitter.fnl @@ -5,7 +5,8 @@ require-macros [macros]}) (configs.setup - {:ensure_installed "all" + {:ensure_installed [] + ; :ensure_installed "maintained" :highlight {:enable true :disable ["fennel" "rust" "haskell"]} diff --git a/nvim/.config/nvim/fnl/init.fnl b/nvim/.config/nvim/fnl/init.fnl index 499837a..6067559 100644 --- a/nvim/.config/nvim/fnl/init.fnl +++ b/nvim/.config/nvim/fnl/init.fnl @@ -1,3 +1,4 @@ + (module init {autoload {utils dots.utils nvim aniseed.nvim diff --git a/nvim/.config/nvim/init.lua b/nvim/.config/nvim/init.lua index c5df6b6..aa2b826 100644 --- a/nvim/.config/nvim/init.lua +++ b/nvim/.config/nvim/init.lua @@ -7,20 +7,31 @@ local vim_config_root = vim.fn.expand(":p:h") local pack_path = vim.fn.stdpath("data") .. "/site/pack" -function ensure(user, repo) +function ensure(user, repo, branch, commit) -- Ensures a given github.com/USER/REPO is cloned in the pack/packer/start directory. - local install_path = string.format("%s/packer/start/%s", pack_path, repo, repo) + local install_path = pack_path .. "/packer/start/" .. repo + -- local install_path = string.format("%s/packer/start/%s", pack_path, repo, repo) if vim.fn.empty(vim.fn.glob(install_path)) > 0 then - --vim.api.nvim_command(string.format("!git clone https://github.com/%s/%s %s", user, repo, install_path)) - vim.fn.system({"git", "clone", "https://github.com/" .. user .. "/" .. repo, install_path}) + vim.fn.system({"git", "clone", "--depth", "1", "--branch", branch, "https://github.com/" .. user .. "/" .. repo, install_path}) + if commit ~= nil then + vim.fn.system({"git", "--git-dir", install_path .. "/.git", "reset", "--hard", commit}) + end vim.api.nvim_command(string.format("packadd %s", repo)) end end -- Bootstrap essential plugins required for installing and loading the rest. -ensure("wbthomason", "packer.nvim") -ensure("Olical", "aniseed") +ensure("wbthomason", "packer.nvim", "master") +ensure("Olical", "aniseed", "develop") +-- ensure("Olical", "aniseed", "v3.22.0") +--ensure("wbthomason", "packer.nvim", "master", "daec6c759f95cd8528e5dd7c214b18b4cec2658c") +--ensure("Olical", "aniseed", "v3.21.0") -vim.g["aniseed#env"] = { + +vim.g["aniseed#env"] = { compile = true } +--require("aniseed.env").init({compile = true}) + + +vim.cmd ("source "..vim_config_root.."/amulet.vim")