this repo has no description

fix: various NeoVim configuration issues

hauleth.dev cb69c5bc 6f1d8795

verified
Changed files
+84 -20
modules
vim
.config
nvim
+65 -8
modules/nvim.nix
···
require('basic')
EOF
'';
-
packages.vimPackages = with pkgs.vimPlugins; {
+
packages.vimPackages = let
+
plugins = pkgs.vimPlugins;
+
ts = plugins.nvim-treesitter.withPlugins (
+
g: [
+
g.bibtex
+
g.comment
+
g.cpp
+
g.css
+
g.csv
+
g.dhall
+
g.diff
+
g.djot
+
g.dot
+
g.editorconfig
+
g.eex
+
g.elixir
+
g.erlang
+
g.fennel
+
g.fish
+
g.git_config
+
g.git_rebase
+
g.gitattributes
+
g.gitcommit
+
g.glsl
+
g.graphql
+
g.haskell
+
g.haskell_persistent
+
g.hcl
+
g.heex
+
g.html
+
g.javascript
+
g.jq
+
g.json
+
g.julia
+
g.just
+
g.make
+
g.mermaid
+
g.nickel
+
g.nix
+
g.po
+
g.printf
+
g.prolog
+
g.racket
+
g.regex
+
g.robots
+
g.ruby
+
g.rust
+
g.scheme
+
g.sql
+
g.ssh_config
+
g.terraform
+
g.toml
+
g.typescript
+
g.typst
+
g.yaml
+
g.zig
+
]
+
);
+
in {
start = [
-
packer-nvim
-
nvim-treesitter.withAllGrammars
-
vim-nickel
-
# XXX: Currently broken
-
lua-utils-nvim
-
neorg
-
neorg-telescope
+
plugins.packer-nvim
+
plugins.vim-nickel
+
plugins.lua-utils-nvim
+
plugins.neorg
+
plugins.neorg-telescope
+
ts
];
opt = [];
+4 -2
vim/.config/nvim/fnl/nvim/macro-init.fnl
···
(fn augroup [name ...]
"Define auto group"
+
(let [ast
`(let [,(sym :au-id) (vim.api.nvim_create_augroup ,(view name) {:clear true})]
(import-macros {: on} :nvim)
-
,...
-
au-id))
+
(do ,...)
+
au-id)]
+
ast))
; TODO: Make argument passing more explicit and find another way to pass
; options. Example idea may be to parse argument list and translate them to the
+4 -4
vim/.config/nvim/fnl/relude/macro-init.fnl
···
(fn use [mod names]
(assert-compile (sym? mod) "expected symbol" mod)
(let [mod-name (view mod)
-
splitted (vim.split mod-name "." {:plain true})
-
last (. splitted (length splitted))
+
split (vim.split mod-name "." {:plain true})
+
last (. split (length split))
matcher (if (= names nil) (sym last) names)]
`(local ,matcher (require ,mod-name))))
(fn reuse [mod names]
(assert-compile (sym? mod) "expected symbol" mod)
(let [mod-name (view mod)
-
splitted (vim.split mod-name "." {:plain true})
-
last (. splitted (length splitted))
+
split (vim.split mod-name "." {:plain true})
+
last (. split (length split))
matcher (if (= names nil) (sym last) names)]
`(local ,matcher
(do
+11 -6
vim/.config/nvim/init.fnl
···
(do
; Keep cursor in the middle
-
(let [value 9999]
-
(set opt.scrolloff value)
-
(augroup terminal-scrolloff
-
(on BufEnter "term://*"
+
(let [value 9999
+
enter (fn []
+
(cmd.echo "'hello'")
(set opt.window.signcolumn :no)
(set opt.window.scrolloff 0))
-
(on BufLeave "term://*"
+
leave (fn []
+
(cmd.echo "'bye'")
(set opt.window.signcolumn "yes:1")
-
(set opt.window.scrolloff value)))))
+
(set opt.window.scrolloff value))]
+
(set opt.scrolloff value)
+
(augroup terminal-scrolloff
+
(on TermOpen "*" (enter))
+
(on BufEnter "term://*" (enter))
+
(on BufLeave "term://*" (leave)))))
(do ; XXI century - we have cursors now
(set opt.mouse :a))