Compare commits

..

89 Commits

Author SHA1 Message Date
7d4c4ae332 neovim: add toggleterm plugin 2023-12-04 11:34:06 -06:00
ae35f5455e neovim: update toggle conceal shortcut 2023-12-04 11:33:37 -06:00
7444d89fad NVIM: various plugin updates 2023-10-18 14:25:39 -05:00
69e1b233d1 NVIM: add mapping for orgmode to toggle checkbox 2023-10-18 14:24:55 -05:00
19930e36d5 NVIM: Update fugitive mappings for a force push 2023-10-18 14:23:54 -05:00
5e5f6ffe49 NVIM: add mapping for extended date format insert 2023-10-18 14:23:15 -05:00
e89869917a NVIM: update telescope plugin settings 2023-10-18 14:22:35 -05:00
80a417fec8 update bash dotfiles 2023-10-18 14:21:52 -05:00
42dc9244be add curltime alias 2023-06-30 10:20:21 -05:00
f30097325b support broot command 2023-06-30 10:20:05 -05:00
88200beefa ignore generated lua files for neovim 2023-06-30 10:19:25 -05:00
ea8112cf35 aliases - git root alias 2023-06-29 15:29:14 -05:00
cf9ef0b5e0 neovim - ensure solarized8 on clean install 2023-06-29 15:28:21 -05:00
1200d06efc neovim - paredit support in other languages 2023-06-29 15:26:27 -05:00
c20fef8542 neovim - no unicode diagnostic signs 2023-06-29 15:26:01 -05:00
4d0512b9aa fix git branch clean alias 2023-06-29 15:25:04 -05:00
c2d5402d28 back out unicode lsp diagnostic symbols 2023-06-16 14:00:27 -05:00
f4369a98ff neovim - add yanky.vim plugin for ring buffer 2023-04-24 20:11:58 -05:00
037ad7d879 neovim - fix plugin load race condition for mason and lspconfig 2023-04-18 20:41:48 -05:00
948c8b4345 neovim - rainbow csv and base64 plugins 2023-04-18 20:41:09 -05:00
9c7237c7e1 neovim - update zoom-toggle 2023-04-18 19:18:30 -05:00
ce6dca9733 neovim - lua lsp name fix 2023-04-18 19:17:55 -05:00
6c0639068d neovim - neovim 0.9.0 updates 2023-04-18 19:17:20 -05:00
df8d793467 neovim - utils namespace updates 2023-04-18 19:16:52 -05:00
0d22d7fa46 neovim - paredit smartjump enable 2023-04-18 19:15:30 -05:00
fa7904e131 neovim - project plugin and telescope updates 2023-04-18 19:14:25 -05:00
9a302cb6c2 neovim - smartsplits plugin 2023-04-18 19:13:50 -05:00
1a6c628b38 Neovim - unify window switching across modes 2023-02-06 10:12:32 -06:00
2b623f6eee Neovim: Update telescope settings
- removed code actions key mapping
- updates file_browser to find_files
2023-01-31 13:14:54 -06:00
07a92bb66c Neovim: Add sg.nvim plugin 2023-01-31 13:14:32 -06:00
d40878f48d Neovim: update colorcol setting 2023-01-31 13:13:57 -06:00
a23c581746 Neovim: move from lsp-installer to mason 2023-01-31 13:13:30 -06:00
04bf501caa nvim - Set diffopt to be patience algorithm 2023-01-16 13:16:29 -06:00
b31ae70a7d Neovim - Trim trailing whitespace mapping 2022-12-31 13:08:18 -06:00
04ffc88e9a Neovim - Support buffer delete in Telescope 2022-12-31 13:07:42 -06:00
a47e5ab7a8 multi-nested langage test md and org files
to have a sample for playing with nested code language behavior in
markdown and org mode with various languages
2022-12-22 21:46:27 -06:00
e2bd2b2497 nvim - start playing with some terraform helpers 2022-12-22 21:45:53 -06:00
b005718a80 git - misc gitconfig updates 2022-12-22 21:44:45 -06:00
5c2859dac6 some testing of paredit of clojure in org and md files 2022-12-22 21:44:03 -06:00
f58001e2ec tmux - update main pane width setting 2022-12-22 21:43:09 -06:00
2f2e7fb72d update lspconfig settings for breaking change 2022-12-22 21:42:18 -06:00
618d305a05 fix namespace reference 2022-10-20 19:31:56 -05:00
3c9383a552 format only if server provides formatting 2022-10-20 19:28:21 -05:00
a61ba60adb Fancy Header stars in org files 2022-10-20 19:24:39 -05:00
b762400ea9 guifontwide setting and formatting 2022-10-20 19:24:37 -05:00
5a77fa58e6 Fix autosave formatting 2022-10-20 19:23:17 -05:00
f0fdde8b8b paredit.fnl formatting 2022-10-20 19:23:17 -05:00
94c07708b6 Reload aniseed instead of source init.lua 2022-10-20 19:23:17 -05:00
1829789ed0 support solarized8 too 2022-10-19 18:15:18 -05:00
f8c419314b Source Aniseed config, not init.lua 2022-10-18 20:08:09 -05:00
b504520573 Misc package updates
plus lots of fnlfmt updates
2022-10-17 15:47:01 -05:00
44c4e29ebd add null-ls language server 2022-10-11 10:37:04 -05:00
b08bb34014 Turn of mouse that was added in neovim 0.8.0 2022-10-11 10:33:53 -05:00
7aee69c6cc Start some cleanup on contextual Paredit 2022-10-11 08:21:39 -05:00
00f9835648 Paredit in org/markdown/asciidoc lisp code blocks 2022-10-10 20:20:30 -05:00
ada07b55ef Git Config - pull.ff only 2022-10-10 08:08:17 -05:00
1d0c8f99c0 Add which-key.nvim plugin 2022-10-10 08:08:17 -05:00
40e12613f3 NeoVim limit emoji completion suggestion count 2022-10-09 21:16:28 -05:00
9aed0652fd Add cmp-path pluging 2022-10-09 21:12:46 -05:00
ceac258332 Current filetype under cursor 2022-10-09 19:57:38 -05:00
da12dab7f0 Update global gitconfig settings 2022-10-06 16:00:55 -05:00
b580f52a16 bump tmux history to 15000 2022-10-06 16:00:26 -05:00
aa59abdc63 update fugitive key mapping 2022-10-06 15:59:58 -05:00
3bb3989d39 Let git pull rebase be taken care of by gitconfig 2022-10-03 13:56:39 -05:00
2ea5230362 Global GitConfig with local if present 2022-10-03 13:51:11 -05:00
Proctor
022744ff0d Fix Fugitive key mapping for push 2022-10-03 12:58:57 -05:00
Proctor
76feada900 Fix module load ordering 2022-10-03 12:56:11 -05:00
Proctor
563b26b4c2 More orgmode related plugins 2022-10-03 11:48:19 -05:00
Proctor
a64a75a550 Some Treesitter config refactoring 2022-10-03 11:47:41 -05:00
Proctor
6b95c42f3d Start fugitive custom keys 2022-10-03 11:47:41 -05:00
Proctor
267192615f Fix colorizing 2022-10-03 11:24:13 -05:00
Proctor
139181de24 Add vim-table-mode plugin 2022-09-26 07:43:44 -05:00
Proctor
c304417d6c Update nvim-cmp sources 2022-09-26 07:43:44 -05:00
953cb4414b Ensure all nvim-treesitter parsers aret installed 2022-09-24 12:57:54 -05:00
005efec7f6 Comment out old solarized8 color scheme 2022-09-24 12:39:54 -05:00
f434ee8946 tmux terminal color settings 2022-09-22 19:16:25 -05:00
Proctor
d3d37c51c9 Small fnl formatting fix 2022-09-22 08:42:40 -05:00
Proctor
8c98d8cfd7 Add cmp-emoji for emoji autocomplete support again 2022-09-22 08:36:32 -05:00
Proctor
6e7f3533aa Add nvim-orgmode plugin 2022-09-22 08:36:06 -05:00
Proctor
86ce07739a Update tmux history limit 2022-09-22 08:35:02 -05:00
Proctor
2d1d92d8a9 Fix some mappings and grepprg args 2022-08-25 08:30:33 -05:00
Proctor
e09e7cf7a5 Add bindings for Clojure LSP refactorings 2022-08-15 10:24:18 -05:00
Proctor
aa91648164 Change keybiding for toggle-conceal 2022-08-15 10:23:47 -05:00
Proctor
e4ac85922e Don't source old Vimfiles 2022-08-09 17:55:26 -05:00
Proctor
629463b335 Format and fix colorcolumn 2022-07-19 19:33:33 -05:00
954340c183 Fix grepprg args for ag command 2022-07-16 13:58:30 -05:00
Proctor
86d29e0624 re-enable conceals for clojure and fennel 2022-07-15 14:47:42 -05:00
Proctor
1b5e02d9b8 add colorcolumn at line 80 2022-07-15 14:47:20 -05:00
Proctor
10c0d5b9e0 Fix listchars showing 2022-07-15 11:00:02 -05:00
40 changed files with 1013 additions and 454 deletions

View File

@@ -1,3 +1,4 @@
shopt -s globstar
[[ -f ~/.bashrc ]] && . ~/.bashrc [[ -f ~/.bashrc ]] && . ~/.bashrc
@@ -5,6 +6,8 @@ PATH=/usr/local/sbin:/usr/local/bin:~/bin:/usr/local/share/npm/bin:$PATH
PATH=$PATH:$HOME PATH=$PATH:$HOME
MANPATH=$MANPATH:/usr/local/opt/erlang/lib/erlang/man MANPATH=$MANPATH:/usr/local/opt/erlang/lib/erlang/man
export XDG_CONFIG_HOME=$HOME/.config
set -o vi set -o vi
export EDITOR='nvim' export EDITOR='nvim'
@@ -110,4 +113,6 @@ export LESS_TERMCAP_us=$'\e'"[1;32m"
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function* [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
[ -s ".config/broot/launcher/bash/br" ] && source /Users/sproctor/.config/broot/launcher/bash/br [ -s "$HOME/.config/broot/launcher/bash/br" ] && source "$HOME/.config/broot/launcher/bash/br"
# source /Users/proctor/.config/broot/launcher/bash/br

View File

@@ -39,3 +39,5 @@ export XML_CATALOG_FILES=/usr/local/etc/xml/catalog
# Add RVM to PATH for scripting. Make sure this is the last PATH variable change. # Add RVM to PATH for scripting. Make sure this is the last PATH variable change.
export PATH="$PATH:$HOME/.rvm/bin" export PATH="$PATH:$HOME/.rvm/bin"
# source ~/.config/broot/launcher/bash/br

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
nvim/.config/nvim/lua/*

View File

@@ -4,11 +4,14 @@ alias ll='ls -l'
alias la='ls -a' alias la='ls -a'
alias lhal='ls -hal' alias lhal='ls -hal'
#curl
alias curltime="curl -w \"@$HOME/utils/curl-time-format.txt\" -o /dev/null -s "
#git aliases #git aliases
alias ?='git status' alias ?='git status'
alias ga='git add' alias ga='git add'
alias gaa='git add .' alias gaa='git add .'
alias gbc="git branch -vv | grep -e '[origin/[^:]*: gone]' | awk '{print \$1}' | xargs git branch -D" alias gbc="git branch -vv | grep -e '[origin/[^:]*: gone]' | awk '{print \$1}' | xargs --no-run-if-empty git branch -D"
alias gbd='git branch -d' alias gbd='git branch -d'
alias gc='git commit' alias gc='git commit'
alias gcb='git branch --show-current' alias gcb='git branch --show-current'
@@ -19,6 +22,7 @@ alias gmerge='git merge --ff-only'
alias gpull='git pull --rebase' alias gpull='git pull --rebase'
alias gpush='git push' alias gpush='git push'
alias gpush!='git push -u origin `git rev-parse --abbrev-ref HEAD`' alias gpush!='git push -u origin `git rev-parse --abbrev-ref HEAD`'
alias gr='cd $(git rev-parse --show-toplevel)'
alias master!='git checkout master' alias master!='git checkout master'
alias main!='git checkout main' alias main!='git checkout main'
alias merged?='git branch --merged' alias merged?='git branch --merged'

32
git/.gitconfig Normal file
View File

@@ -0,0 +1,32 @@
# This is Git's per-user configuration file.
[user]
email = steven.proctor@gmail.com
name = Proctor
[core]
editor = nvim
excludesFile = ~/.gitignore.global
[init]
defaultBranch = main
[alias] ; Command aliases for the git[1] command wrapper
last = cat-file commit HEAD
[branch]
autoSetupRebase = always
[checkout]
defaultRemote = origin
[merge]
ff = only
[push]
autoSetupRemote = true
default = upstream
[rerere]
enabled = true
[remote]
pushDefault = origin
;; This is last, take in any other local file overrides
[include]
path = ~/.gitconfig.local ; find ".gitconfig.local" in your `$HOME` directory
[pull]
ff = only

View File

@@ -21,6 +21,8 @@
:false :⊥ :false :⊥
;; and ;; and
;; or ;; or
;; if-not
;; when-not
;; (not ;; (not
;; None | ∅ ;; None | ∅
;; true, false | , ⊥ (top and bottom from logic) ;; true, false | , ⊥ (top and bottom from logic)
@@ -46,16 +48,18 @@
(set nvim.wo.conceallevel 2) (set nvim.wo.conceallevel 2)
(set nvim.wo.conceallevel 0))) (set nvim.wo.conceallevel 0)))
;(setup-conceals)
;(toggle-conceal)
;(if true true false) ;(if true true false)
(nu.fn-bridge :ToggleConceal :dotfiles.conceal :toggle-conceal {:return false}) (nu.fn-bridge :ToggleConceal :dotfiles.conceal :toggle-conceal {:return false})
(nu.fn-bridge :SetupConceals :dotfiles.conceal :setup-conceals {:return false}) (nu.fn-bridge :SetupConceals :dotfiles.conceal :setup-conceals {:return false})
(u.nnoremap :<leader>ct "call ToggleConceal()") (u.nnoremap :<leader>ts "call ToggleConceal()")
(def pretty-filetypes [:fennel (def pretty-filetypes [:fennel
:clojure]) :clojure])
; (each [_ ftype (pairs pretty-filetypes)] (each [_ ftype (pairs pretty-filetypes)]
; (nvim.ex.autocmd :FileType ftype :call "SetupConceals()")) (nvim.ex.autocmd :FileType ftype :call "SetupConceals()"))
;

View File

@@ -1,121 +1,123 @@
(module dotfiles.core (module dotfiles.core {autoload {a aniseed.core}
{autoload require {anenv aniseed.env
{a aniseed.core} nvim aniseed.nvim
require nu aniseed.nvim.util
{anenv aniseed.env u dotfiles.util}})
nvim aniseed.nvim
nu aniseed.nvim.util
u dotfiles.util
}})
(nvim.ex.set :shortmess+=c)
(nvim.ex.set "shortmess+=c") ; don't give |ins-completion-menu| messages. ; don't give |ins-completion-menu| messages.
(nvim.ex.set "path+=**") (nvim.ex.set :path+=**)
(nvim.ex.set "wildignore+=*.o,*.obj,.git,*.rbc,*.class,.svn,vendor/gems/*") (nvim.ex.set "wildignore+=*.o,*.obj,.git,*.rbc,*.class,.svn,vendor/gems/*")
(defn- safe-source (defn- safe-source [filename]
[filename] (let [glob (nvim.fn.glob filename)]
(let [glob (nvim.fn.glob filename)] (if (not (a.empty? glob))
(if (not (a.empty? glob)) (nvim.ex.source filename))))
(nvim.ex.source filename))))
(a.map safe-source ["~/.vimrc" "~/.vimrc.local"]) ; (a.map safe-source ["~/.vimrc" "~/.vimrc.local"])
(def- backup-dir (.. (nvim.fn.glob :$HOME) :/.vim/backup))
(def- undo-dir (.. (nvim.fn.glob :$HOME) :/.vim/backup))
(def- backup-dir (.. (nvim.fn.glob "$HOME") "/.vim/backup")) (def- on-opts [:autoindent
(def- undo-dir (.. (nvim.fn.glob "$HOME") "/.vim/backup")) :autoread
:expandtab
:exrc
; allow project level (neo)vim files
:hlsearch
:ignorecase
:incsearch
:number
:ruler
:secure
:shiftround
; When at 3 spaces and I hit >>, go to 4, not 5.
:showcmd
; shows (parital) command in the status line
:showmatch
:smartcase
:splitbelow
:splitright
:termguicolors
:title
:undofile
:wildmenu])
(def- on-opts [ (def- val-based-opts {; :t_Co 256
:autoindent :laststatus 2
:autoread :encoding :utf-8
:expandtab :history 500
:exrc ; allow project level (neo)vim files :redrawtime 5000
:hlsearch :scrolloff 3
:ignorecase :guifont :Hasklig
:incsearch :guifontwide :Hasklig
:number :background :dark
:ruler :backupdir backup-dir
:secure :directory backup-dir
:shiftround ; When at 3 spaces and I hit >>, go to 4, not 5. ;Don't clutter my dirs up with swp and tmp files
:showcmd ; shows (parital) command in the status line :grepprg "ag --vimgrep"
:showmatch ; Use Silver Searcher instead of grep
:smartcase :tags :tags
:splitbelow :updatetime 300
:splitright ; per coc.vim for diagnostic messages
:termguicolors :signcolumn "auto:1-3"
:title :colorcolumn [81 100]
:undofile :cmdheight 2
:wildmenu ; Better display for messages
]) :undodir undo-dir
:undolevels 1000
:undoreload 10000
:foldmethod :expr
:foldexpr "nvim_treesitter#foldexpr()"
:foldlevelstart 100
:foldlevel 99
:tabstop 2
:shiftwidth 2
:softtabstop 2
:mouse ""
:list true
:listchars "tab:➥\\ ,trail:·,"
:backspace "indent,eol,start"
;allow backspacing over everything in insert mode
:wildmode "list:longest,list:full"
:wrap false})
(def- append-val-opts {:diffopt "algorithm:patience"})
(def- val-based-opts (defn- set-opt [[opt val]] (tset vim.opt (a.str opt) val))
{
; :t_Co 256
:laststatus 2
:encoding "utf-8"
:history 500
:redrawtime 5000
:scrolloff 3
:guifont "Hasklig"
:background "dark"
:backupdir backup-dir
:directory backup-dir ;Don't clutter my dirs up with swp and tmp files
:grepprg "ag" ; Use Silver Searcher instead of grep
:tags "tags"
:updatetime 300 ; per coc.vim for diagnostic messages
:signcolumn "auto:1-3"
:cmdheight 2 ; Better display for messages
:undodir undo-dir
:undolevels 1000
:undoreload 10000
:foldmethod "expr"
:foldexpr "nvim_treesitter#foldexpr()"
:foldlevelstart 100
:foldlevel 99
:tabstop 2
:shiftwidth 2
:softtabstop 2
:list true
:listchars "tab:➥\\ ,trail:·"
:backspace "indent,eol,start" ;allow backspacing over everything in insert mode
:wildmode "list:longest,list:full"
:wrap false
})
(defn- set-opt (defn- set-opt+ [[opt val]]
[[opt val]] (let [existing-opt-val (a.get nvim.o opt)]
(tset vim.opt (a.str opt) val)) (tset vim.opt (a.str opt) (a.str existing-opt-val "," val))))
(defn- set-opt-on (defn- set-opt-on [opt] (set-opt [opt true]))
[opt]
(set-opt [opt true]))
(a.map set-opt-on on-opts) (a.map set-opt-on on-opts)
(a.map-indexed set-opt val-based-opts) (a.map-indexed set-opt val-based-opts)
(nvim.ex.syntax "on") (a.map-indexed set-opt+ append-val-opts)
(nvim.ex.colorscheme :soluarized)
(nvim.ex.syntax :on)
;; (nvim.ex.colorscheme :soluarized)
(nvim.ex.colorscheme :solarized8)
;; (nvim.ex.autocmd "vimenter" "*" "++nested" "colorscheme" "soluarized")
(nvim.ex.autocmd "vimenter" "*" "++nested" "colorscheme" "solarized8") (nvim.ex.autocmd :vimenter "*" :++nested :colorscheme :solarized8)
;(nvim.ex.autocmd "vimenter" "*" "luafile" "treesitter.lua") ;(nvim.ex.autocmd "vimenter" "*" "luafile" "treesitter.lua")
; ;
; (nvim.fn.glob "~/.vimrc.local") ; (nvim.fn.glob "~/.vimrc.local")
(defn make-fennel-scratch (defn make-fennel-scratch []
[] (nvim.command "new | setlocal bt=nofile bh=wipe nobl noswapfile nu filetype=fennel"))
(nvim.command "new | setlocal bt=nofile bh=wipe nobl noswapfile nu filetype=fennel"))
(nu.fn-bridge :FennelScratchBuffer :dotfiles.core :make-fennel-scratch
{:return false})
(nu.fn-bridge :FennelScratchBuffer :dotfiles.core :make-fennel-scratch {:return false})
(u.nnoremap :<leader>fsb ":call FennelScratchBuffer ()<CR>") (u.nnoremap :<leader>fsb ":call FennelScratchBuffer ()<CR>")
(defn compile-fnl [] (defn compile-fnl [] (print :recompiling)
(print :recompiling) (anenv.init {:force true :init :dotfiles.init}))
(anenv.init
{:force true
:init :dotfiles.init}))
(nu.fn-bridge :AniseedCompile :dotfiles.core :compile-fnl {:return false}) (nu.fn-bridge :AniseedCompile :dotfiles.core :compile-fnl {:return false})

View File

@@ -5,11 +5,12 @@
{nvim aniseed.nvim}}) {nvim aniseed.nvim}})
(require :dotfiles.plugins)
(require :dotfiles.core) (require :dotfiles.core)
(require :dotfiles.plugins)
(require :dotfiles.mapping) (require :dotfiles.mapping)
(require :dotfiles.conceal) (require :dotfiles.conceal)
(require :dotfiles.zoom-toggle) (require :dotfiles.zoom-toggle)
;(nvim.ex.source "~/.vimrc") ;(nvim.ex.source "~/.vimrc")
(a.println "(re)loaded")

View File

@@ -1,39 +1,49 @@
(module dotfiles.mapping (module dotfiles.mapping
{autoload {nvim aniseed.nvim {autoload {nvim aniseed.nvim
nu aniseed.nvim.util nu aniseed.nvim.util
core aniseed.core}}) core aniseed.core
util dotfiles.util}})
(defn- noremap [mode from to] (defn- noremap [mode from to] "Sets a mapping with {:noremap true}."
"Sets a mapping with {:noremap true}." (nvim.set_keymap mode from to {:noremap true}))
(nvim.set_keymap mode from to {:noremap true}))
; (set nvim.g.mapleader "\\") ; (set nvim.g.mapleader "\\")
(noremap :n "<leader>`" ":source ~/.config/nvim/init.lua<CR>") (defn aniseed-reload []
(noremap :n "<leader>!" ":call AniseedCompile()<CR>") (each [k _ (ipairs package.loaded)]
(when (string.match k "^dotfiles%..+")
(tset package.loaded k nil)))
((. (require :aniseed.env) :init) {:module :dotfiles.init :compile true})
(core.println "aniseed reloaded!"))
(vim.keymap.set :n "<leader>`" aniseed-reload)
; (noremap :n "<leader>`" ":source ~/.config/nvim/init.lua<CR>")
(noremap :n :<leader>! ":call AniseedCompile()<CR>")
(noremap :n :<Enter> ":nohlsearch<Enter>/<BS>") (noremap :n :<Enter> ":nohlsearch<Enter>/<BS>")
;; Correct to first spelling suggestion. ;; Correct to first spelling suggestion.
(noremap :n :<leader>zz ":normal! 1z=<cr>") (noremap :n :<leader>zz ":normal! 1z=<cr>")
;; nice paste from clipboard in insert mode ;; nice paste from clipboard in insert mode
(noremap :i :<C-V><C-O> ":set paste<CR><C-R><C-R>+<C-O>:set nopaste<CR>") (noremap :i :<C-V><C-O> ":set paste<CR><C-R><C-R>+<C-O>:set nopaste<CR>")
; Insert Date ; Insert Date
(noremap :n :<F5> "\"=strftime(\"%F\")<CR>p") (noremap :n :<F5> "\"=strftime(\"%F\")<CR>p")
(noremap :i :<F5> "<C-R>=strftime(\"%F\")<CR>") (noremap :i :<F5> "<C-R>=strftime(\"%F\")<CR>")
(noremap :n :<M-5> "\"=trim(system('date -u'))<CR>p")
(noremap :i :<M-5> "<C-R>=trim(system('date -u'))<CR>")
; Make markdown link with empty url ; Make markdown link with empty url
;map <Leader>ah S<a href="" target="_blank" rel="noopener noreferrer"><CR> ;map <Leader>ah S<a href="" target="_blank" rel="noopener noreferrer"><CR>
(noremap :v :<leader>ah "S<a href=\"\" target=\"_blank\" rel=\"nopener noreferrer\"><CR>") (noremap :v :<leader>ah
"S<a href=\"\" target=\"_blank\" rel=\"nopener noreferrer\"><CR>")
(noremap :v :<leader>ml "xi[<c-r>\"]()<esc>") (noremap :v :<leader>ml "xi[<c-r>\"]()<esc>")
(noremap :n :<C-e> :3<C-e>)
(noremap :n :<C-e> "3<C-e>") (noremap :n :<C-y> :3<C-y>)
(noremap :n :<C-y> "3<C-y>")
; Unimpaired configuration ; Unimpaired configuration
; Bubble single lines ; Bubble single lines
@@ -54,8 +64,46 @@
(noremap :n :gsh ":GitGutterStageHunk<CR>") (noremap :n :gsh ":GitGutterStageHunk<CR>")
; Open file in Marked 2 (markdown viewer) ; Open file in Marked 2 (markdown viewer)
(noremap :n :<leader>mv ":AsyncRun -mode=bang open -a Marked\\ 2.app \'%:p\'<cr>") (noremap :n :<leader>mv ":AsyncRun -mode=bang open -a Marked\\ 2.app '%:p'<cr>")
; Run current statement in DadBod-UI ; Run current statement in DadBod-UI
(nvim.ex.autocmd :FileType :sql :nmap :<leader>s "vap<leader>S") (nvim.ex.autocmd :FileType :sql :nmap :<leader>s :vap<leader>S)
(noremap :n :Q ":.!bash <CR>")
; Ruby old hash syntax to new hash syntax
;(util/lvnoremap :uhs "<C-U>s/\\([a-z][^ \\t]*\\) =>/\\1:/ge" )
;(util/lnnoremap :uhs "<C-U>s/\\([a-z][^ \\t]*\\) =>/\\1:/ge" )
; Trim trailing Whitespace in visual selection
(util.lvnoremap :tw "<C-U>s/\\s\\+$//ge<CR>:nohlsearch<Enter>/<BS>")
; Trim trailing Whitespace in current line
(util.lnnoremap :tw "<C-U>.s/\\s\\+$//ge<CR>:nohlsearch<Enter>/<BS>")
;; (noremap :n :<C-A-l> ":echo \"test\"\n")
; Window switching
; ˙ -> alt-h
; ∆ -> alt-j
; ˚ -> alt-k
; ¬ -> alt-l
;; Terminal mode
;; (noremap :t "˙" "<c-\\><c-n><c-w>h")
;; (noremap :t "∆" "<c-\\><c-n><c-w>j")
;; (noremap :t "˚" "<c-\\><c-n><c-w>k")
;; (noremap :t "¬" "<c-\\><c-n><c-w>l")
;; ;; Insert mode:
;; (noremap :i "˙" :<Esc><c-w>h)
;; (noremap :i "∆" :<Esc><c-w>j)
;; (noremap :i "˚" :<Esc><c-w>k)
;; (noremap :i "¬" :<Esc><c-w>l)
;; ;; Visual mode:
;; (noremap :v "˙" :<Esc><c-w>h)
;; (noremap :v "∆" :<Esc><c-w>j)
;; (noremap :v "˚" :<Esc><c-w>k)
;; (noremap :v "¬" :<Esc><c-w>l)
;; ;; Normal mode:
;; (noremap :n "˙" :<c-w>h)
;; (noremap :n "∆" :<c-w>j)
;; (noremap :n "˚" :<c-w>k)
;; (noremap :n "¬" :<c-w>l)

View File

@@ -1,42 +1,39 @@
(module dotfiles.plugin.cmp (module dotfiles.plugin.cmp {autoload {nvim aniseed.nvim luasnip luasnip}})
{autoload {nvim aniseed.nvim}})
(module config.plugin.cmp {autoload {nvim aniseed.nvim cmp cmp}})
(module config.plugin.cmp (def- cmp-src-menu-items {:buffer :buff :conjure :conj :nvim_lsp :lsp})
{autoload {nvim aniseed.nvim
cmp cmp}})
(def- cmp-src-menu-items (def- cmp-srcs [{:name :nvim_lsp}
{:buffer "buff" {:name :nvim_lua}
:conjure "conj" {:name :luasnip}
:nvim_lsp "lsp"}) {:name :vsnip}
{:name :conjure}
(def- cmp-srcs {:name :buffer}
[{:name :nvim_lsp} {:name :orgmode}
{:name :vsnip} {:name :emoji :max_item_count 8}])
{:name :conjure}
{:name :buffer}])
;; Setup cmp with desired settings ;; Setup cmp with desired settings
(let [cmp (require :cmp)] (let [cmp (require :cmp)]
(cmp.setup {:formatting (cmp.setup {:formatting {:format (fn [entry item]
{:format (fn [entry item] (set item.menu
(set item.menu (or (. cmp-src-menu-items entry.source.name) "")) (or (. cmp-src-menu-items
item)} entry.source.name)
""))
item)}
:mapping {:<C-p> (cmp.mapping.select_prev_item) :mapping {:<C-p> (cmp.mapping.select_prev_item)
:<C-n> (cmp.mapping.select_next_item) :<C-n> (cmp.mapping.select_next_item)
:<C-b> (cmp.mapping.scroll_docs (- 4)) :<C-b> (cmp.mapping.scroll_docs (- 4))
:<C-f> (cmp.mapping.scroll_docs 4) :<C-f> (cmp.mapping.scroll_docs 4)
:<C-Space> (cmp.mapping.complete) :<C-Space> (cmp.mapping.complete)
:<C-e> (cmp.mapping.close) :<C-e> (cmp.mapping.close)
:<CR> (cmp.mapping.confirm {:behavior cmp.ConfirmBehavior.Insert :<C-y> (cmp.mapping.confirm {;; :behavior cmp.ConfirmBehavior.Insert
:select true})} :select true})}
:snippet {:expand (fn [args] :snippet {:expand (fn [args]
(nvim.fn.vsnip#anonymous args.body))} (if args
(luasnip.lsp_expand args.body)))}
:sources cmp-srcs})) :sources cmp-srcs}))
;;; imap <expr> <C-j> vsnip#available(1) ? '<Plug>(vsnip-expand)' : '<C-j>' ;;; imap <expr> <C-j> vsnip#available(1) ? '<Plug>(vsnip-expand)' : '<C-j>'
;;; imap <expr> <C-l> vsnip#available(1) ? '<Plug>(vsnip-expand-or-jump)' : '<C-l>' ;;; imap <expr> <C-l> vsnip#available(1) ? '<Plug>(vsnip-expand-or-jump)' : '<C-l>'
;;; smap <expr> <C-l> vsnip#available(1) ? '<Plug>(vsnip-expand-or-jump)' : '<C-l>' ;;; smap <expr> <C-l> vsnip#available(1) ? '<Plug>(vsnip-expand-or-jump)' : '<C-l>'

View File

@@ -1,13 +1,13 @@
(module dotfiles.plugin.colorizer (module dotfiles.plugin.colorizer
{autoload {colorizer colorizer}}) {autoload {colorizer colorizer}})
(colorizer.setup {"*" {}} (colorizer.setup [:*]
{:RGB true ; #RGB hex codes, like #F00 {:RGB true ; #RGB hex codes, like #F00
:RRGGBB true ; #RRGGBB hex codes, like #00FF00 :RRGGBB true ; #RRGGBB hex codes, like #00FF00
:names true ; "Name" codes like Blue :names true ; "Name" codes like Blue
:RRGGBBAA true ; #RRGGBBAA hex codes :RRGGBBAA true ; #RRGGBBAA hex codes
:rgb_fn true ; CSS rgb() and rgba() functions :rgb_fn true ; CSS rgb() and rgba() functions
:hsl_fn true ; CSS hsl() and hsla() functions :hsl_fn true ; CSS hsl() and hsla() functions
:css true ; Enable all CSS features: rgb_fn, hsl_fn, names, RGB, RRGGBB :css true ; Enable all CSS features: rgb_fn, hsl_fn, names, RGB, RRGGBB
:css_fn true ; Enable all CSS *functions*: rgb_fn, hsl_fn :css_fn true ; Enable all CSS *functions*: rgb_fn, hsl_fn
}) })

View File

@@ -25,6 +25,7 @@
:nvim_lsp true :nvim_lsp true
:nvim_lua true :nvim_lua true
:conjure true :conjure true
:orgmode true
:vsnip true :vsnip true
:vim_dadbod_completion true}}))) :vim_dadbod_completion true}})))

View File

@@ -6,6 +6,7 @@
; (set nvim.g.conjure#eval#result_register "*") ; (set nvim.g.conjure#eval#result_register "*")
; (set nvim.g.conjure#log#botright true) ; (set nvim.g.conjure#log#botright true)
(set nvim.g.conjure#mapping#doc_word "gk") (set nvim.g.conjure#mapping#doc_word "gk")
(set nvim.g.conjure#client#clojure#nrepl#mapping#session_clone :sC)
(set nvim.g.conjure#extract#tree_sitter#enabled true) (set nvim.g.conjure#extract#tree_sitter#enabled true)
(conjure-config.assoc-in [:filetypes] (a.concat (conjure-config.filetypes) [:markdown] )) (conjure-config.assoc-in [:filetypes] (a.concat (conjure-config.filetypes) [:markdown] ))

View File

@@ -0,0 +1,10 @@
(module dotfiles.plugin.fugitive
{autoload {nvim aniseed.nvim
nu aniseed.nvim.util
core aniseed.core
util dotfiles.util}})
;; Determine load time of fugitive
(nvim.ex.autocmd :FileType :fugitive :nmap :<buffer> :<leader>gp ":Git pull<CR>")
(nvim.ex.autocmd :FileType :fugitive :nmap :<buffer> :<leader>gP ":Git push<CR>" )
(nvim.ex.autocmd :FileType :fugitive :nmap :<buffer> :<leader>gF ":Git push -f<CR>" )

View File

@@ -0,0 +1,2 @@
(module dotfiles.plugin.headlines
{autoload {headlines headlines}})

View File

@@ -0,0 +1,3 @@
(module dotfiles.plugin.hex {autoload {nvim aniseed.nvim hex hex}})
(hex.setup)

View File

@@ -1,195 +1,158 @@
(module dotfiles.plugin.lspconfig (module dotfiles.plugin.lspconfig
{autoload {autoload {a aniseed.core
{a aniseed.core u dotfiles.util
u dotfiles.util nvim aniseed.nvim
nvim aniseed.nvim lsp vim.lsp
nu aniseed.nvim.util lspconfig lspconfig
} nu aniseed.nvim.util
}) mason dotfiles.plugin.mason
cmp_nvim_lsp cmp_nvim_lsp}})
(defn bufmap [mode from to] (defn bufmap [mode from to] (u.noremap mode from to {:local? true}))
(u.noremap mode from to {:local? true}))
(defn nbufmap [from to] (defn nbufmap [from to] (bufmap :n from to))
(bufmap :n from to))
(defn xbufmap [from to]
(bufmap :x from to))
(defn xbufmap [from to] (bufmap :x from to))
(defn define-sign [level sign] (defn define-sign [level sign]
(let [sign-level (.. "DiagnosticSign" level)] (let [sign-level (.. :DiagnosticSign level)]
(nvim.fn.sign_define sign-level (nvim.fn.sign_define sign-level
{:texthl sign-level {:texthl sign-level :text sign :numhl sign-level})))
:text sign
:numhl sign-level})))
; (define-sign :Error "☢️") ;; (define-sign :Error "☢️")
; (define-sign :Warn "⚠️") ;; (define-sign :Warn "⚠️")
; (define-sign :SignHint "🔎") ;; (define-sign :SignHint "🔎")
; (define-sign :Info "") ;; (define-sign :Info "")
(define-sign :Error "X") (define-sign :Error :X)
(define-sign :Warn "!") (define-sign :Warn "!")
(define-sign :SignHint "?") (define-sign :SignHint "?")
(define-sign :Info "i") (define-sign :Info :i)
(def core-nmappings (def core-nmappings
{ {:gd "lua vim.lsp.buf.definition()"
:gd "lua vim.lsp.buf.definition()" :gD "lua vim.lsp.buf.declaration()"
:gD "lua vim.lsp.buf.declaration()" :gi "lua vim.lsp.buf.implementation()"
:gi "lua vim.lsp.buf.implementation()" :gr "lua vim.lsp.buf.references()"
:gr "lua vim.lsp.buf.references()" :K "lua vim.lsp.buf.hover()"
:K "lua vim.lsp.buf.hover()" "[g" "lua vim.diagnostic.goto_prev()"
"[g" "lua vim.diagnostic.goto_prev()" "]g" "lua vim.diagnostic.goto_next()"
"]g" "lua vim.diagnostic.goto_next()" ;:<c-k> "lua vim.lsp.buf.signature_help()"
:<c-k> "lua vim.lsp.buf.signature_help()" :<leader>ca "lua vim.lsp.buf.code_action()"
:<leader>ca "lua vim.lsp.buf.code_action()" :<leader>cl "lua vim.lsp.codelens.run()"
:<leader>cl "lua vim.lsp.codelens.run()" :<leader>ic "lua vim.lsp.buf.incoming_calls()"
:<leader>ic "lua vim.lsp.buf.incoming_calls()" ;; TODO: think of new mapping; conficts with org mode
:<leader>oc "lua vim.lsp.buf.outgoing_calls()" ;; :<leader>oc "lua vim.lsp.buf.outgoing_calls()"
:<leader>sld "lua vim.diagnostic.open_float(nil, {source = 'always'})" :<leader>sld "lua vim.diagnostic.open_float(nil, {source = 'always'})"
:<leader>rn "lua vim.lsp.buf.rename()" :<leader>rn "lua vim.lsp.buf.rename()"
:<leader>fa "lua vim.lsp.buf.formatting_sync()" :<leader>fa "lua vim.lsp.buf.format()"})
})
(def client-nmappings (def client-nmappings
{:clojure_lsp {:clojure_lsp {:<leader>cn "call LspExecuteCommand('clean-ns')"
{ :<leader>ref "call LspExecuteCommand('extract-function', input('Function name: '))"
:<leader>cn "call LspExecuteCommand('clean-ns')" :<leader>id "call LspExecuteCommand('inline-symbol')"
:<leader>ref "call LspExecuteCommand('extract-function', input('Function name: '))" :<leader>il "call LspExecuteCommand('introduce-let', input('Binding name: '))"
:<leader>id "call LspExecuteCommand('inline-symbol')" :<leader>m2l "call LspExecuteCommand('move-to-let', input('Binding name: '))"}})
:<leader>il "call LspExecuteCommand('introduce-let', input('Binding name: '))"
:<leader>m2l "call LspExecuteCommand('move-to-let', input('Binding name: '))"
}
})
(def client-command-lnmappings
{:clojure_lsp {:ai [:add-import-to-namespace
["input('Namespace name: ')"]]
:am [:add-missing-libspec []]
:as [:add-require-suggestion
["input('Namespace name: ')"
"input('Namespace as: ')"
"input('Namespace name: ')"]]
:cc [:cycle-coll []]
:cn [:clean-ns []]
:cp [:cycle-privacy []]
:ct [:create-test []]
:df [:drag-forward []]
:db [:drag-backward []]
:df [:drag-forward []]
:dk [:destructure-keys []]
:ed [:extract-to-def ["input('Definition name: ')"]]
:ef [:extract-function ["input('Function name: ')"]]
:el [:expand-let []]
:fe [:create-function []]
:il [:introduce-let ["input('Binding name: ')"]]
:is [:inline-symbol []]
:ma [:resolve-macro-as []]
:mf [:move-form ["input('File name: ')"]]
:ml [:move-to-let ["input('Binding name: ')"]]
:pf [:promote-fn ["input('Function name: ')"]]
:sc [:change-collection ["input('Collection type: ')"]]
:sm [:sort-map []]
:tf [:thread-first-all []]
:tF [:thread-first []]
:tl [:thread-last-all []]
:tL [:thread-last []]
:ua [:unwind-all []]
:uw [:unwind-thread []]}})
(def server-specific-opts {})
(defn bind-client-mappings [client] (defn bind-client-mappings [client]
(let [client-name (a.get client :name) (let [client-name (a.get client :name)
mappings (a.get client-nmappings client-name)] mappings (a.get client-nmappings client-name)
(when mappings command-lnmappings (a.get client-command-lnmappings client-name)]
(each [mapping cmd (pairs mappings)] (when mappings
(nbufmap mapping cmd))))) (each [mapping cmd (pairs mappings)]
(nbufmap mapping cmd)))
(when command-lnmappings
(each [lnmapping command-mapping (pairs command-lnmappings)]
(let [lsp-cmd (a.first command-mapping)
opts-str (accumulate [s "" i opt (ipairs (a.second command-mapping))]
(.. s ", " opt))
mapping (.. :<leader> lnmapping)
cmd (.. "call LspExecuteCommand('" lsp-cmd "'" opts-str ")")]
(nbufmap mapping cmd))))))
(defn on_attach [client bufnr] (defn on_attach [client bufnr]
(each [mapping cmd (pairs core-nmappings)] (each [mapping cmd (pairs core-nmappings)]
(nbufmap mapping cmd)) (nbufmap mapping cmd)) ; x mode mappings
(xbufmap :<leader>fa "lua vim.lsp.buf.format()")
; -- buf_set_keymap('n', 'gs', '<Cmd>lua vim.lsp.buf.document_symbol()<CR>', opts)
; -- buf_set_keymap('n', 'gS', '<Cmd>lua vim.lsp.buf.workspace_symbol()<CR>', opts)
; -- buf_set_keymap('n', 'gt', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
; -- buf_set_keymap('n', '<leader>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts)
; -- buf_set_keymap('n', '<leader>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
; -- buf_set_keymap('n', '<leader>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)
; -- buf_set_keymap('n', '<leader>q', '<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>', opts)
; -- buf_set_keymap('n', '<leader>ic', "<cmd>lua vim.lsp.buf.incoming_calls()<CR>", opts)
; -- buf_set_keymap('x', '<leader>ic', "<cmd>lua vim.lsp.buf.incoming_calls()<CR>", opts)
(nvim.buf_set_option 0 :omnifunc "v:lua.vim.lsp.omnifunc")
(bind-client-mappings client)
(if client.server_capabilities.documentFormattingProvider
(nvim.ex.autocmd :BufWritePre :<buffer> ":lua vim.lsp.buf.format()"))
; (nvim.ex.autocmd "BufEnter,CursorHold,InsertLeave" :<buffer> :lua "vim.lsp.codelens.refresh()")
; client autocmds
; -- vim.api.nvim_command[[autocmd BufWritePre <buffer> lua vim.lsp.buf_request_sync(vim.api.nvim_get_current_buf(), 'workspace/executeCommand', {command = 'clean-ns', arguments = {vim.uri_from_bufnr(1), vim.api.nvim_win_get_cursor(0)[1], vim.api.nvim_win_get_cursor(0)[2]}, title = 'Clean Namespace'})]]
(print "LSP Client Attached."))
; x mode mappings (def base-server-opts
(xbufmap :<leader>fa "lua vim.lsp.buf.formatting_sync()") (let [capabilities (cmp_nvim_lsp.default_capabilities (lsp.protocol.make_client_capabilities))]
{: on_attach : capabilities :flags {:debounce_text_changes 150}}))
; -- buf_set_keymap('n', 'gs', '<Cmd>lua vim.lsp.buf.document_symbol()<CR>', opts) (defn default-server-handler [server-name]
; -- buf_set_keymap('n', 'gS', '<Cmd>lua vim.lsp.buf.workspace_symbol()<CR>', opts) (let [specific-opts (a.get server-specific-opts server-name {})
; -- buf_set_keymap('n', 'gt', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts) server (a.get lspconfig server-name)
; -- buf_set_keymap('n', '<leader>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts) server-opts (a.merge base-server-opts server-opts)]
; -- buf_set_keymap('n', '<leader>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts) (server.setup server-opts)))
; -- buf_set_keymap('n', '<leader>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)
; -- buf_set_keymap('n', '<leader>q', '<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>', opts)
; -- buf_set_keymap('n', '<leader>ic', "<cmd>lua vim.lsp.buf.incoming_calls()<CR>", opts)
; -- buf_set_keymap('x', '<leader>ic', "<cmd>lua vim.lsp.buf.incoming_calls()<CR>", opts)
(nvim.buf_set_option 0 :omnifunc "v:lua.vim.lsp.omnifunc") (defn lsp-execute-command [cmd ...]
(bind-client-mappings client)
(nvim.ex.autocmd :BufWritePre :<buffer> :lua "vim.lsp.buf.formatting_sync()")
; (nvim.ex.autocmd "BufEnter,CursorHold,InsertLeave" :<buffer> :lua "vim.lsp.codelens.refresh()")
; client autocmds
; -- vim.api.nvim_command[[autocmd BufWritePre <buffer> lua vim.lsp.buf_request_sync(vim.api.nvim_get_current_buf(), 'workspace/executeCommand', {command = 'clean-ns', arguments = {vim.uri_from_bufnr(1), vim.api.nvim_win_get_cursor(0)[1], vim.api.nvim_win_get_cursor(0)[2]}, title = 'Clean Namespace'})]]
(print "LSP Client Attached."))
(let [lspi (require :nvim-lsp-installer)]
(when lspi
(defn lsp-execute-command [cmd ...]
(let [buf-uri (vim.uri_from_bufnr 0) (let [buf-uri (vim.uri_from_bufnr 0)
cursor (vim.api.nvim_win_get_cursor 0) cursor (vim.api.nvim_win_get_cursor 0)
r (- (a.first cursor) 1) r (- (a.first cursor) 1)
c (a.second cursor) c (a.second cursor)
opts [buf-uri r c] opts [buf-uri r c]
args (a.concat opts [...])] args (a.concat opts [...])]
(vim.lsp.buf.execute_command {:command cmd (vim.lsp.buf.execute_command {:command cmd :arguments args})))
:arguments args})))
(defn setup-servers [] (mason.setup)
(lspi.on_server_ready (fn [server]
(let [opts {:on_attach on_attach :flags {:debounce_text_changes 150} }]
(server:setup opts))))
;; (let [lspconfig (require :lspconfig)
;; servers (lspi.get_installed_servers)]
;; (each [_ server (pairs servers)]
;; (server.setup {:on_attach on_attach :flags {:debounce_text_changes 150} })))
)
(defn on-post-install [] (when-let [mason-lspconfig (require :mason-lspconfig)]
(setup-servers) (mason-lspconfig.setup)
(nvim.ex.bufdo :e)) (mason-lspconfig.setup_handlers {1 default-server-handler}))
(setup-servers) (u.nnoremap :<leader>li :LspInfo)
(nu.fn-bridge :LspExecuteCommand :dotfiles.plugin.lspconfig
(set lspi.post_install_hook on-post-install) :lsp-execute-command {:return false})
(nu.fn-bridge :LspExecuteCommand :dotfiles.plugin.lspconfig :lsp-execute-command {:return false})
(u.nnoremap :<leader>li "LspInfo")))
;; (let [eval (require :conjure.eval)
;; client (require :conjure.client)
;; ts-utils (require :nvim-treesitter.ts_utils)
;; parsers (require :nvim-treesitter.parsers)
;; ]
;;
;; ; client["with-filetype"]("fennel", eval["eval-str"], {
;; ; origin = "my-awesome-plugin",
;; ; code = "(+ 10 20)",
;; ; ["passive?"] = true,
;; ; ["on-result"] = function (r)
;; ; print("RESULT:", r)
;; ; end
;; ; })
;;
;; (defn ts-node-descendent-of? [node ancestor-type]
;; (print node)
;; (if (= nil node)
;; false
;; (let [node-type (node:type)]
;; (print node-type)
;; (if (= ancestor-type node-type)
;; true
;; (ts-node-descendent-of? (node:parent) ancestor-type)))))
;;
;; (defn in-fenced-code-block? []
;; (let [cursor (vim.api.nvim_win_get_cursor 0)
;; lnum (a.first cursor)
;; col (a.second cursor)
;; root_lang_tree (parsers.get_parser)
;; range [ lnum - 1 col lnum - 1 col ]
;; (node root lang-tree) (ts-utils.get_root_for_position (- lnum 1) col root_lang_tree) ]
;; (a.pr "language" (a.get lang-tree :_lang :err))
;; )
;; (let [node-at-cursor (ts-utils.get_node_at_cursor)]
;; (print "node at cursor" node-at-cursor)
;; (a.pr "root for node at cursor " (ts-utils.get_root_for_node node-at-cursor))
;; (print (ts-node-descendent-of? node-at-cursor :fenced_code_block))))
;;
;; (defn markdown-code-to-repl []
;; ; (let [buf-uri (vim.uri_from_bufnr 0)
;; ; cursor (vim.api.nvim_win_get_cursor 0)
;; ; r (- (a.first cursor) 1)
;; ; c (a.second cursor)
;; ; opts [buf-uri r c]
;; ; args (a.concat opts [...])]
;; ; (vim.lsp.buf.execute_command {:command cmd
;; ; :arguments args}))
;; )
;;
;; (nu.fn-bridge :MarkdownCodeToRepl :dotfiles.plugin.lspconfig :markdown-code-to-repl {:return false})
;;
;; (nu.fn-bridge :IsInFencedCodeBlock :dotfiles.plugin.lspconfig :in-fenced-code-block? {:return false})
;;
;; ;; If file type is Markdown
;; ;(u.nnoremap :<leader>ee "call MarkdownCodeToRepl")
;;
;; )
;;

View File

@@ -0,0 +1,19 @@
(module dotfiles.plugin.luasnip
{autoload {nvim aniseed.nvim util dotfiles.util luasnip luasnip}
require {select_choice luasnip.extras.select_choice}})
(vim.keymap.set [:i :s] :<C-k>
(fn []
(if (luasnip.expand_or_jumpable)
(luasnip.expand_or_jump))) {:silent true})
(vim.keymap.set [:i :s] :<C-j>
(fn []
(if (luasnip.jumpable -1)
(luasnip.jump -1))) {:silent true})
(vim.keymap.set :i :<C-l> (fn []
(if (luasnip.choice_active)
(luasnip.choice 1))))
(vim.keymap.set :i :<C-u> select_choice)

View File

@@ -0,0 +1,10 @@
(module dotfiles.plugin.mason
{autoload {a aniseed.core
nvim aniseed.nvim mason mason mason-lspconf mason-lspconfig}})
(defn setup []
(when mason
(mason.setup {:ui {:icons {:package_installed "✓"}}})
(when mason-lspconf
(mason-lspconf.setup {:ensure_installed [:lua_ls]})
(mason-lspconf.setup_handlers {1 default-server-handler}))))

View File

@@ -0,0 +1,13 @@
(module dotfiles.plugin.null-ls
{autoload {nvim aniseed.nvim
a aniseed.core
nu aniseed.nvim.util
null-ls null-ls
lspconfig dotfiles.plugin.lspconfig}})
(def null-ls-server-options
{:sources [null-ls.builtins.formatting.stylua
null-ls.builtins.formatting.fnlfmt]
:on_attach lspconfig.on_attach})
(null-ls.setup null-ls-server-options)

View File

@@ -0,0 +1,47 @@
(module dotfiles.plugin.orgbullets
{autoload {nvim aniseed.nvim a aniseed.core ts-utils dotfiles.ts-utils}})
(def stars ["◉" "⦾" "○" "✸" "✿" "✶" "•" "‣"])
(def stars-query "(headline (stars) @stars)")
(defn star-index [heading-level]
(let [star-count (a.count stars)
idx (math.fmod heading-level star-count)]
(if (< 0 idx)
idx
star-count)))
(defonce extmark-namespace (vim.api.nvim_create_namespace :HeaderStars))
(def star-captures (ts-utils.make-query :org stars-query))
(defn gen-star-extmarks []
(when (= :org vim.bo.filetype)
(let [bufnr (vim.api.nvim_get_current_buf)
star-count (a.count stars)]
(vim.api.nvim_buf_clear_namespace bufnr extmark-namespace 0 -1)
(each [id node metadata (star-captures bufnr)]
(let [[start-line start-col end-row end-col] [(node:range)]
heading-level (if (= start-line end-row)
(- end-col start-col))
star (a.get stars (star-index heading-level))
replacement (string.format (a.str "%" (+ 2 heading-level) :s)
star)]
(vim.api.nvim_buf_set_extmark bufnr extmark-namespace start-line
start-col
{:end_col end-col
:end_row end-row
:virt_text [[replacement []]]
:virt_text_pos :overlay
:hl_mode :combine}))))))
(let [group (nvim.create_augroup :HeaderStars {:clear true})]
(nvim.create_autocmd [:FileChangedShellPost
:Syntax
:TextChanged
:InsertLeave
:WinScrolled]
{: group
;; :pattern [:*.org]
:callback gen-star-extmarks}))

View File

@@ -0,0 +1,11 @@
(module dotfiles.plugin.orgmode {autoload {orgmode orgmode}})
(orgmode.setup_ts_grammar)
(orgmode.setup {:org_agenda_files ["~/Dropbox/org/*" "~/my-orgs/**/*"]
:org_default_notes_file "~/Dropbox/org/refile.org"
:mappings {
:org {
:org_toggle_checkbox :<C-.>}}})
(require :dotfiles.plugin.orgbullets)

View File

@@ -0,0 +1,94 @@
(module dotfiles.plugin.paredit
{autoload {nvim aniseed.nvim
a aniseed.core
nu aniseed.nvim.util
paredit paredit
ts-parsers nvim-treesitter.parsers
ts-utils nvim-treesitter.ts_utils
languagetree vim.treesitter.languagetree}})
(set nvim.g.paredit_smartjump 1)
(defn list-member? [xs x] (a.some #(= x $1) (a.vals xs)))
(defn bool->int [bool] (if bool 1 0))
(defn int->bool [x] (if (= 0 x) false true))
(defn toggle-global! [x] (->> (a.get nvim.g x)
(int->bool)
(not)
(bool->int)
(tset nvim.g x)))
(defn language-at-cursor [] (let [parser (ts-parsers.get_parser)
current-node (ts-utils.get_node_at_cursor)
range (if current-node [(current-node:range)])
lang (if range
(languagetree.language_for_range parser
range))]
(if lang
(lang:lang))))
(defn parser-language [] (let [parser (ts-parsers.get_parser)]
(when parser
(parser:lang))))
(def- paredit-langs [:clojure
:fennel
:hy
:janet
:julia
:lfe
:lisp
:racket
:scheme
:shen])
(def- paredit-host-langs [:org :markdown :asciidoc])
(defn- host-lang-in? [langs] (list-member? langs (parser-language)))
(defn paredit-lang? [lang] (list-member? paredit-langs lang))
(defn TreeSitterLangParedit []
(when (host-lang-in? paredit-host-langs)
(when-let [cursor-lang (language-at-cursor)]
(->> cursor-lang
(paredit-lang?)
(bool->int)
(set nvim.g.paredit_mode))
(nvim.fn.PareditInitBuffer))))
(nvim.ex.autocmd :FileType :ruby :call "PareditInitBalancingAllBracketsBuffer()")
(nvim.ex.autocmd :FileType :javascript :call "PareditInitBalancingAllBracketsBuffer()")
(nvim.ex.autocmd :FileType :terraform :call "PareditInitBalancingAllBracketsBuffer()")
; (nvim.del_augroup_by_name "BabeliteParedit")
; (nvim.get_autocmds {:group "BabeliteParedit"})
;;(let [group (nvim.create_augroup :BabeliteParedit {:clear true})]
;; (nvim.create_autocmd [:CursorHold :CursorMoved]
;; {: group
;; ;:pattern ["*.org" "*.md"]
;; :callback TreeSitterLangParedit}))
;;
;; (defn paredit-toggle! [] (toggle-global :paredit_mode)
;; (nvim.fn.PareditInitBuffer)
;; nvim.g.paredit_mode
;; )
;;
;; \
;; (int->bool 0)
;; (defn test [x] (a.get nvim.g x))
;;
;; (test :pareditmode)
;; (a.get nvim.g :paredit_mode)
;; (comment ;
;; nvim.g.paredit_mode
;; ;
;;
;; (paredit-toggle!)
;; )

View File

@@ -0,0 +1,27 @@
(module dotfiles.plugin.smartsplits
{autoload {nvim aniseed.nvim
a aniseed.core
smart-splits smart-splits
;; util dotfiles.util
}})
(smart-splits.setup)
;; recommended mappings
;; resizing splits
;; these keymaps will also accept a range,
;; for example `10<A-h>` will `resize_left` by `(10 * config.default_amount)`
(vim.keymap.set :n :<M-S-h> smart-splits.resize_left)
(vim.keymap.set :n :<M-S-j> smart-splits.resize_down)
(vim.keymap.set :n :<M-S-k> smart-splits.resize_up)
(vim.keymap.set :n :<M-S-l> smart-splits.resize_right)
;; moving between splits
(vim.keymap.set :n :<M-h> smart-splits.move_cursor_left)
(vim.keymap.set :n :<M-j> smart-splits.move_cursor_down)
(vim.keymap.set :n :<M-k> smart-splits.move_cursor_up)
(vim.keymap.set :n :<M-l> smart-splits.move_cursor_right)
;; swapping buffers between windows
(vim.keymap.set :n :<leader><leader>h smart-splits.swap_buf_left)
(vim.keymap.set :n :<leader><leader>j smart-splits.swap_buf_down)
(vim.keymap.set :n :<leader><leader>k smart-splits.swap_buf_up)
(vim.keymap.set :n :<leader><leader>l smart-splits.swap_buf_right)

View File

@@ -1,33 +1,48 @@
(module dotfiles.plugin.telescope (module dotfiles.plugin.telescope
{autoload {nvim aniseed.nvim {autoload {nvim aniseed.nvim
util dotfiles.util util dotfiles.util
telescope telescope}}) telescope telescope
project-nvim project_nvim}})
(telescope.setup (def vimgrep_arguments [:ag
{:defaults :--nocolor
{:vimgrep_arguments ["ag" "--nocolor" "--noheading" :--noheading
"--number" "--column" "--nobreak" :--number
"--smart-case" "--hidden" "--follow" ; "--skip-vcs-ignores" :--column
:--nobreak
:--smart-case
:--hidden
; "--skip-vcs-ignores"
; "-g" "!.git/" ; "-g" "!.git/"
]}}) :--ignore
:.git
:--follow])
(telescope.load_extension :projects)
(telescope.load_extension :yank_history)
(telescope.setup {;; :defaults {: vimgrep_arguments}
:pickers {:buffers {:mappings {:n {:d :delete_buffer}}}}
:extensions {:projects {:projects {}}}})
(util.lnnoremap :ff "Telescope git_files hidden=true")
(util.lnnoremap :f- "Telescope file_browser")
(util.lnnoremap :fg "Telescope live_grep")
(util.lnnoremap :* "Telescope grep_string")
(util.lnnoremap :fb "Telescope buffers")
(util.lnnoremap :fH "Telescope help_tags")
(util.lnnoremap :fm "Telescope keymaps")
(util.lnnoremap :fM "Telescope marks")
(util.lnnoremap :fh "Telescope oldfiles")
(util.lnnoremap :ft "Telescope filetypes")
(util.lnnoremap :fc "Telescope commands") (util.lnnoremap :fc "Telescope commands")
(util.lnnoremap :fC "Telescope command_history") (util.lnnoremap :fC "Telescope command_history")
(util.lnnoremap :ff "Telescope git_files hidden=true")
(util.lnnoremap :f- "Telescope find_files")
(util.lnnoremap :fg "Telescope live_grep")
(util.lnnoremap "*" "Telescope grep_string")
(util.lnnoremap :fb "Telescope buffers")
(util.lnnoremap :fd "Telescope diagnostics")
(util.lnnoremap :fH "Telescope help_tags")
(util.lnnoremap :fh "Telescope oldfiles")
(util.lnnoremap :fp "Telescope projects")
(util.lnnoremap :fm "Telescope keymaps")
(util.lnnoremap :fM "Telescope marks")
(util.lnnoremap :ft "Telescope filetypes")
(util.lnnoremap :fq "Telescope quickfix") (util.lnnoremap :fq "Telescope quickfix")
(util.lnnoremap :fl "Telescope loclist") (util.lnnoremap :fl "Telescope loclist")
(util.lnnoremap :fsa "Telescope lsp_code_actions")
(util.lnnoremap :fsi "Telescope lsp_implementations") (util.lnnoremap :fsi "Telescope lsp_implementations")
(util.lnnoremap :fsr "Telescope lsp_references") (util.lnnoremap :fsr "Telescope lsp_references")
(util.lnnoremap :fsS "Telescope lsp_document_symbols") (util.lnnoremap :fsS "Telescope lsp_document_symbols")
(util.lnnoremap :fss "Telescope lsp_workspace_symbols") (util.lnnoremap :fss "Telescope lsp_workspace_symbols")
(util.lnnoremap :fy "Telescope yank_history")

View File

@@ -0,0 +1,29 @@
(module dotfiles.toggleterm
{autoload {a aniseed.core}
require {nvim aniseed.nvim
nu aniseed.nvim.util
toggleterm toggleterm}})
(toggleterm.setup {
:open_mapping :<c-\>
:start_in_insert true
:insert_mappings true ;; whether or not the open mapping applies in insert mode
:terminal_mappings true ;; whether or not the open mapping applies in the opened terminals
:persist_size true
:persist_mode true ;; if set to true (default) the previous terminal mode will be remembered
})
(defn set_terminal_keymaps []
(vim.keymap.set :t :<esc> :<C-\><C-n>)
(vim.keymap.set :t :jk :<C-\><C-n>)
(vim.keymap.set :t :<C-h> "<Cmd>wincmd h<CR>")
(vim.keymap.set :t :<C-j> "<Cmd>wincmd j<CR>")
(vim.keymap.set :t :<C-k> "<Cmd>wincmd k<CR>")
(vim.keymap.set :t :<C-l> "<Cmd>wincmd l<CR>")
(vim.keymap.set :t :<C-w> :<C-\><C-n><C-w>))
(nu.fn-bridge :SetTerminalKeymaps :dotfiles.toggleterm :set_terminal_keymaps {:return false})
(nvim.ex.autocmd :TermOpen "term://*" :call "SetTerminalKeymaps()")

View File

@@ -1,9 +1,15 @@
(module dotfiles.plugin.treesitter (module dotfiles.plugin.treesitter
{autoload {treesitter nvim-treesitter.configs}}) {autoload {treesitter nvim-treesitter
ts_utils nvim-treesitter.ts_utils
treesitter-configs nvim-treesitter.configs}})
(treesitter.setup (treesitter-configs.setup
{:highlight {:enable true {:highlight {:enable true
:additional_vim_regex_highlighting false} ;; :additional_vim_regex_highlighting false
:additional_vim_regex_highlighting [:org]
}
:ensure_installed :all ; [:org]
:rainbow {:enable true :rainbow {:enable true
:extended_mode true ; Also highlight non-bracket delimiters like html tags, boolean or table: lang -> boolean :extended_mode true ; Also highlight non-bracket delimiters like html tags, boolean or table: lang -> boolean
@@ -18,5 +24,6 @@
:#6c71c4 ; violet / brmagenta :#6c71c4 ; violet / brmagenta
] ; table of hex strings ] ; table of hex strings
} }
:playground {:enable true}
}) })
; lua print(require('nvim-treesitter.parsers').get_parser():language_for_range({ require('nvim-treesitter.ts_utils').get_node_at_cursor():range() }):lang())

View File

@@ -0,0 +1,5 @@
(module dotfiles.plugin.whichkey
{autoload {which-key which-key}})
(which-key.setup {})

View File

@@ -0,0 +1,37 @@
(module dotfiles.plugin.yanky {autoload {nvim aniseed.nvim
a aniseed.core
;; util dotfiles.util
yanky yanky}
;; require {minpac minpac}
})
(yanky.setup {:ring {:history_length 100
:storage :shada
:sync_with_numbered_registers true
:cancel_event :update}
:system_clipboard {:sync_with_ring true}})
(vim.keymap.set :n :p "<Plug>(YankyPutAfter)")
(vim.keymap.set :n :P "<Plug>(YankyPutBefore)")
(vim.keymap.set :n :gp "<Plug>(YankyGPutAfter)")
(vim.keymap.set :n :gP "<Plug>(YankyGPutBefore)")
(vim.keymap.set :n :<c-n> "<Plug>(YankyCycleForward)")
(vim.keymap.set :n :<c-p> "<Plug>(YankyCycleBackward)")
(vim.keymap.set :n "]p" "<Plug>(YankyPutIndentAfterLinewise)")
(vim.keymap.set :n "[p" "<Plug>(YankyPutIndentBeforeLinewise)")
(vim.keymap.set :n "]P" "<Plug>(YankyPutIndentAfterLinewise)")
(vim.keymap.set :n "[P" "<Plug>(YankyPutIndentBeforeLinewise)")
(vim.keymap.set :n :>p "<Plug>(YankyPutIndentAfterShiftRight)")
(vim.keymap.set :n :<p "<Plug>(YankyPutIndentAfterShiftLeft)")
(vim.keymap.set :n :>P "<Plug>(YankyPutIndentBeforeShiftRight)")
(vim.keymap.set :n :<P "<Plug>(YankyPutIndentBeforeShiftLeft)")
(vim.keymap.set :n :=p "<Plug>(YankyPutAfterFilter)")
(vim.keymap.set :n :=P "<Plug>(YankyPutBeforeFilter)")
(vim.keymap.set :x :p "<Plug>(YankyPutAfter)")
(vim.keymap.set :x :P "<Plug>(YankyPutBefore)")
(vim.keymap.set :x :gp "<Plug>(YankyGPutAfter)")
(vim.keymap.set :x :gP "<Plug>(YankyGPutBefore)")

View File

@@ -1,88 +1,104 @@
(module dotfiles.plugins (module dotfiles.plugins {autoload {nvim aniseed.nvim
{autoload {nvim aniseed.nvim a aniseed.core
a aniseed.core ;; util dotfiles.util
;; util dotfiles.util packer packer}
packer packer ;; require {minpac minpac}
})
}
;; require {minpac minpac}
})
(defn safe-require-plugin-config [name] (defn safe-require-plugin-config [name]
(let [(ok? val-or-err) (pcall require (.. :dotfiles.plugin. name))] (let [(ok? val-or-err) (pcall require (.. :dotfiles.plugin. name))]
(when (not ok?) (when (not ok?)
(print (.. "dotfiles error: " val-or-err))))) (print (.. "dotfiles error: " val-or-err)))))
(defn- use [pkgs] (defn- use [pkgs] "Iterates through the arguments as pairs and calls packer's use function for
"Iterates through the arguments as pairs and calls packer's use function for
each of them. Works around Fennel not liking mixed associative and sequential each of them. Works around Fennel not liking mixed associative and sequential
tables as well." tables as well."
(packer.startup (packer.startup (fn [use]
(fn [use] (each [name opts (pairs pkgs)]
(each [name opts (pairs pkgs)] (-?> (. opts :mod) (safe-require-plugin-config))
(-?> (. opts :mod) (safe-require-plugin-config)) (use (a.assoc opts 1 name))))))
(use (a.assoc opts 1 name))
))))
(def- packages {:Olical/aniseed {}
(def- packages :Olical/conjure {:mod :conjure}
{ :Olical/fennel.vim {}
:Olical/aniseed {} :ahmedkhalf/project.nvim {}
:Olical/conjure { :mod :conjure } ; Clojure :airblade/vim-gitgutter {}
:Olical/fennel.vim {} ; Fennel :akinsho/toggleterm.nvim {:mod :toggleterm}
:airblade/vim-gitgutter {} ; Git :clojure-vim/vim-jack-in {}
:airblade/vim-gitgutter {} ; Git :christianrondeau/vim-base64 {}
:clojure-vim/vim-jack-in {} ; Conjure support - jack-in with nrepl dependencies :dhruvasagar/vim-table-mode {}
:folke/lsp-colors.nvim {} :folke/lsp-colors.nvim {}
:hashivim/vim-terraform {} ; Terraform :folke/which-key.nvim {:mod :whichkey}
:hrsh7th/nvim-cmp {:requires [:hrsh7th/cmp-buffer :gbprod/yanky.nvim {:mod :yanky}
:hrsh7th/cmp-nvim-lsp :hashivim/vim-terraform {}
:hrsh7th/cmp-vsnip :hrsh7th/nvim-cmp {:requires [:hrsh7th/cmp-buffer
:hrsh7th/vim-vsnip-integ :hrsh7th/cmp-emoji
:PaterJason/cmp-conjure] :hrsh7th/cmp-nvim-lsp
:mod :cmp} ; autocomplete :hrsh7th/cmp-nvim-lua
:hrsh7th/vim-vsnip {} :hrsh7th/cmp-path
:hrsh7th/vim-vsnip-integ {} :hrsh7th/cmp-vsnip
:Iron-E/nvim-soluarized {} :hrsh7th/vim-vsnip-integ
:jiangmiao/auto-pairs {} ; backets, parens, and quotes in pairs :L3MON4D3/LuaSnip
:junegunn/vim-easy-align {:mod :easyalign} :PaterJason/cmp-conjure
:kovisoft/paredit {} :saadparwaiz1/cmp_luasnip]
:kristijanhusak/vim-dadbod-completion {} :mod :cmp}
:kristijanhusak/vim-dadbod-ui {} :hrsh7th/vim-vsnip {}
:neovim/nvim-lspconfig {:mod :lspconfig} ; NeoVim lsp config :hrsh7th/vim-vsnip-integ {}
:norcalli/nvim-colorizer.lua {:mode :colorizer} :Iron-E/nvim-soluarized {}
:nvim-telescope/telescope.nvim {:requires [[:nvim-lua/popup.nvim] [:nvim-lua/plenary.nvim]] :mod :telescope} :jiangmiao/auto-pairs {}
:nvim-treesitter/nvim-treesitter {:run ":TSUpdate" :mod :treesitter :requires [:nvim-treesitter/playground]} :jose-elias-alvarez/null-ls.nvim {:mod :null-ls
:nvim-treesitter/playground {} :requires [:nvim-lua/plenary.nvim]}
:p00f/nvim-ts-rainbow {} :junegunn/vim-easy-align {:mod :easyalign}
:radenling/vim-dispatch-neovim {} ; Clojure :kovisoft/paredit {:mod :paredit}
:skywind3000/asyncrun.vim {} ; :AsyncRun :kristijanhusak/vim-dadbod-completion {}
:tpope/vim-classpath {} :kristijanhusak/vim-dadbod-ui {}
:tpope/vim-dadbod {} :L3MON4D3/LuaSnip {:mod :luasnip}
:tpope/vim-dispatch {} ; Conjure support - jack-in with nrepl dependencies :lifepillar/vim-solarized8 {}
:tpope/vim-fugitive {} ; Git :lukas-reineke/headlines.nvim {:mod :headlines}
:tpope/vim-git {} ; Git Commit Message ; :michaelb/sniprun {:run "bash ./install.sh" :mod :sniprun}
:tpope/vim-pathogen {} :mrjones2014/smart-splits.nvim {:mod :smartsplits}
:tpope/vim-rails {} :mechatroner/rainbow_csv {}
:tpope/vim-repeat {} :neovim/nvim-lspconfig {:mod :lspconfig}
:tpope/vim-surround {} :norcalli/nvim-colorizer.lua {:mod :colorizer}
:tpope/vim-unimpaired {} :nvim-orgmode/orgmode {:mod :orgmode}
:tpope/vim-vinegar {} :nvim-telescope/telescope.nvim {:requires [[:nvim-lua/popup.nvim]
:wbthomason/packer.nvim {:mod :packer} [:nvim-lua/plenary.nvim]]
:williamboman/nvim-lsp-installer {} ; NeoVim lsp server installs :mod :telescope}
:nvim-treesitter/nvim-treesitter {:run ":TSUpdate"
; :luochen1990/rainbow {} :mod :treesitter}
; :thecontinium/asyncomplete-conjure.vim {} :nvim-treesitter/playground {}
} :p00f/nvim-ts-rainbow {}
:radenling/vim-dispatch-neovim {}
; :tpope/vim-fireplace {} ; Clojure :RaafatTurki/hex.nvim { :mod :hex }
; :tpope/vim-sexp-mappings-for-regular-people {} :rafamadriz/friendly-snippets {}
) :skywind3000/asyncrun.vim {}
;; :tjdevries/sg.nvim {:run "cargo build --workspace"
;; :dependencies [:nvim-lua/plenary.nvim]}
;; :tpope/vim-classpath {}
:tpope/vim-dadbod {}
:tpope/vim-dispatch {}
:tpope/vim-fugitive {:mod :fugitive}
:tpope/vim-git {}
:tpope/vim-pathogen {}
:tpope/vim-rails {}
:tpope/vim-repeat {}
:tpope/vim-rhubarb {}
:tpope/vim-surround {}
:tpope/vim-unimpaired {}
:tpope/vim-vinegar {}
:wbthomason/packer.nvim {:mod :packer}
;; :williamboman/nvim-lsp-installbuilder {}
:williamboman/mason.nvim {:mod :mason
:requires [:williamboman/mason-lspconfig.nvim]}
; NeoVim lsp server installs
; :luochen1990/rainbow {}
; :thecontinium/asyncomplete-conjure.vim {}
} ; :tpope/vim-fireplace {} ; Clojure
; :tpope/vim-sexp-mappings-for-regular-people {}
)
(use packages) (use packages)
;; call minpac#add('dense-analysis/ale') " Linting ;; call minpac#add('dense-analysis/ale') " Linting
;; call minpac#add('editorconfig/editorconfig-vim') ;; call minpac#add('editorconfig/editorconfig-vim')
;; call minpac#add('elixir-lang/vim-elixir') " Elixir ;; call minpac#add('elixir-lang/vim-elixir') " Elixir

View File

@@ -0,0 +1,22 @@
(module dotfiles.terraform-helpers
{autoload {a aniseed.core}
require {anenv aniseed.env
nvim aniseed.nvim
nu aniseed.nvim.util
u dotfiles.util}})
(defn append-to-buf [bufno lines]
(when lines
(nvim.buf_set_lines buffno -1 -1 false lines)))
(var tf-log-bufno nil)
(defn tf-log-buffer [])
(defn terraform-import []
(vim.fn.jobstart [:terraform :import :-no-color address id]
{:stdout_buffered true
:on_stdout (fn [_ data]
(append-to-buf bufno data))}))
; (nu.fn-bridge :ZoomToggle :dotfiles.zoom-toggle :zoom-toggle {:return false})
; (u.nnoremap :<C-W>z ":call ZoomToggle()<CR>")

View File

@@ -0,0 +1,12 @@
(module dotfiles.ts-utils {autoload {nvim aniseed.nvim a aniseed.core}})
(defn root [bufnr lang] (let [parser (vim.treesitter.get_parser bufnr lang {})
tree (a.first (: parser :parse))]
(: tree :root)))
(defn make-query [lang query-string]
(let [query (vim.treesitter.query.parse lang "(headline (stars) @stars)")]
(fn [bufnr]
(let [root-node (root bufnr lang)
iter-captures (query.iter_captures query root-node bufnr 0 -1)]
iter-captures))))

View File

@@ -1,21 +1,21 @@
(module dotfiles.util (module dotfiles.util {autoload {a aniseed.core} require {nvim aniseed.nvim}})
{autoload
{a aniseed.core}
require
{nvim aniseed.nvim}})
(defn noremap [mode from to opts] (defn noremap [mode from to opts]
(let [map-opts {:noremap true :silent true} (let [map-opts {:noremap true :silent true}
to (.. ":" to "<cr>") to (.. ":" to :<cr>)
buff-num (a.get opts :buff-num)] buff-num (a.get opts :buff-num)]
(if (or (a.get opts :local?) buff-num)
(nvim.buf_set_keymap (or buff-num 0) mode from to map-opts)
(nvim.set_keymap mode from to map-opts))))
(if (or (a.get opts :local?) buff-num ) (defn nnoremap [from to opts] (noremap :n from to opts))
(nvim.buf_set_keymap (or buff-num 0) mode from to map-opts)
(nvim.set_keymap mode from to map-opts))))
(defn nnoremap [from to opts] (defn tnoremap [from to opts] (noremap :t from to opts))
(noremap :n from to opts))
(defn lnnoremap [from to] (defn inoremap [from to opts] (noremap :i from to opts))
(nnoremap (.. "<leader>" from) to))
(defn vnoremap [from to opts] (noremap :v from to opts))
(defn lnnoremap [from to] (nnoremap (.. :<leader> from) to))
(defn lvnoremap [from to opts] (noremap :v (.. :<leader> from) to opts))

View File

@@ -1,24 +1,21 @@
(module dotfiles.zoom-toggle (module dotfiles.zoom-toggle
{autoload {autoload {a aniseed.core}
{a aniseed.core} require {anenv aniseed.env
require nvim aniseed.nvim
{anenv aniseed.env nu aniseed.nvim.util
nvim aniseed.nvim u dotfiles.util}})
nu aniseed.nvim.util
u dotfiles.util}})
(var unzoom! nil) (var unzoom! nil)
(defn zoom-toggle [] (defn zoom-toggle [] (if unzoom!
(if unzoom! (do
(do (nvim.command unzoom!)
(nvim.command unzoom!) (set unzoom! nil))
(set unzoom! nil)) (do
(do (set unzoom! (nvim.fn.winrestcmd))
(set unzoom! (nvim.fn.winrestcmd)) (nvim.ex.resize)
(nvim.ex.resize) (nvim.ex.vertical :resize))))
(nvim.ex.vertical :resize))))
(nu.fn-bridge :ZoomToggle :dotfiles.zoom-toggle :zoom-toggle {:return false}) (nu.fn-bridge :ZoomToggle :dotfiles.zoom-toggle :zoom-toggle {:return false})
(u.nnoremap :<C-W>z ":call ZoomToggle()<CR>") (u.nnoremap :<C-W>z ":call ZoomToggle()<CR>")
(u.tnoremap :t "Ω" "<c-\\><c-n>:call ZoomToggle()<CR>")

View File

@@ -16,6 +16,7 @@ end
-- Bootstrap essential plugins required for installing and loading the rest. -- Bootstrap essential plugins required for installing and loading the rest.
ensure("wbthomason", "packer.nvim") ensure("wbthomason", "packer.nvim")
ensure("Olical", "aniseed") ensure("Olical", "aniseed")
ensure("lifepillar", "vim-solarized8")
-- Enable Aniseed's automatic compilation and loading of Fennel source code. -- Enable Aniseed's automatic compilation and loading of Fennel source code.
vim.g["aniseed#env"] = { vim.g["aniseed#env"] = {

21
test.md Normal file
View File

@@ -0,0 +1,21 @@
# Some heading
```fennel
(print)
(* 21
(+ 1 3))
```
some clojure
```clojure
(print
)(* 21
(+ 1 3))
```
some python
```python
print( 1 + 3 ) + 3
```

50
test.org Normal file
View File

@@ -0,0 +1,50 @@
* test
** test level 2
*** test level 3
**** test level 4
***** test level 5
****** test level 6
******* test level 7
******** test level 8
********* test level 9
********** test level 10
* test 3
* test 4
#+NAME: x
3
- [ ] something
- [X] something else
- [-] half done ∂
Some fennel
#+begin_example ex1
dfs
#+end_example
#+name: random
#+begin_src fennel
(print )
(+ 1 (* 3 7))
#+end_src
#+results:
Some Clojure
#+begin_src clojure
(println (* 3 )(+ 1 2) )
#+end_src
#+begin_src python :results silent :exports code :var n=0
print(1 + 3)
#+end_src
#+begin_src
print(+ 1 3)
#+end_src

View File

@@ -1,6 +1,9 @@
set -g prefix C-a set -g prefix C-a
unbind C-b unbind C-b
set -g xterm-keys on
set -s extended-keys on
set -g history-file ~/.tmux_history set -g history-file ~/.tmux_history
set -s escape-time 1 set -s escape-time 1
@@ -8,6 +11,8 @@ set -s escape-time 1
set -g base-index 1 set -g base-index 1
setw -g pane-base-index 1 setw -g pane-base-index 1
set -g main-pane-width 160
bind r source-file ~/.tmux.conf \; display "Reloaded!" bind r source-file ~/.tmux.conf \; display "Reloaded!"
bind -r '`' clear-history \; display "History Cleared!" bind -r '`' clear-history \; display "History Cleared!"
@@ -33,8 +38,8 @@ setw -g mouse off
# set -g default-terminal "xterm-256:color" # set -g default-terminal "xterm-256:color"
# set -g default-terminal "${TERM}" # set -g default-terminal "${TERM}"
set -s default-terminal "tmux-256color" set -g default-terminal "tmux-256color"
set -g history-limit 6000 set -g history-limit 15000
set -g window-status-style dim set -g window-status-style dim
set -g window-status-current-style bright set -g window-status-current-style bright
@@ -46,8 +51,9 @@ set -g status-right '#(~/dotfiles/bin/tmux_battery_charge_indicator.sh) #[bg=whi
set -g update-environment "DISPLAY SSH_ASKPASS SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY" set -g update-environment "DISPLAY SSH_ASKPASS SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY"
set-environment -g 'SSH_AUTH_SOCK' ~/.ssh/ssh_auth_sock set-environment -g 'SSH_AUTH_SOCK' ~/.ssh/ssh_auth_sock
# set -as terminal-overrides ',xterm-257color:RGB' # set -as terminal-overrides ',xterm-256color:RGB'
set -as terminal-features ',xterm-256color:RGB' set -as terminal-features ',tmux-256color:RGB'
set-option -sa terminal-overrides ',tmux-256color:RGB'
# Undercurl # Undercurl
set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm' # undercurl support set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm' # undercurl support
@@ -55,3 +61,31 @@ set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm' # undercurl support
set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m' # underscore colours - needs tmux-3.0 set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m' # underscore colours - needs tmux-3.0
set-option -g focus-events on set-option -g focus-events on
# Smart pane switching with awareness of Vim splits.
# See: https://github.com/christoomey/vim-tmux-navigator
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
bind-key -n M-S-h if-shell "$is_vim" 'send-keys M-S-h' 'resize-pane -L 3'
bind-key -n M-S-j if-shell "$is_vim" 'send-keys M-S-j' 'resize-pane -D 3'
bind-key -n M-S-k if-shell "$is_vim" 'send-keys M-S-k' 'resize-pane -U 3'
bind-key -n M-S-l if-shell "$is_vim" 'send-keys M-S-l' 'resize-pane -R 3'
bind-key -n M-h if-shell "$is_vim" 'send-keys M-h' 'select-pane -L'
bind-key -n M-j if-shell "$is_vim" 'send-keys M-j' 'select-pane -D'
bind-key -n M-k if-shell "$is_vim" 'send-keys M-k' 'select-pane -U'
bind-key -n M-l if-shell "$is_vim" 'send-keys M-l' 'select-pane -R'
tmux_version='$(tmux -V | sed -En "s/^tmux ([0-9]+(.[0-9]+)?).*/\1/p")'
if-shell -b '[ "$(echo "$tmux_version < 3.0" | bc)" = 1 ]' \
"bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\' 'select-pane -l'"
if-shell -b '[ "$(echo "$tmux_version >= 3.0" | bc)" = 1 ]' \
"bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\\\' 'select-pane -l'"
bind-key -T copy-mode-vi 'M-S-h' select-pane -L
bind-key -T copy-mode-vi 'M-S-j' select-pane -D
bind-key -T copy-mode-vi 'M-S-k' select-pane -U
bind-key -T copy-mode-vi 'M-S-l' select-pane -R
bind-key -T copy-mode-vi 'M-S-\' select-pane -l

View File

@@ -0,0 +1,8 @@
time_namelookup: %{time_namelookup}s\n
time_connect: %{time_connect}s\n
time_appconnect: %{time_appconnect}s\n
time_pretransfer: %{time_pretransfer}s\n
time_redirect: %{time_redirect}s\n
time_starttransfer: %{time_starttransfer}s\n
----------\n
time_total: %{time_total}s\n

View File

@@ -0,0 +1,8 @@
time_namelookup: %{time_namelookup}s\n
time_connect: %{time_connect}s\n
time_appconnect: %{time_appconnect}s\n
time_pretransfer: %{time_pretransfer}s\n
time_redirect: %{time_redirect}s\n
time_starttransfer: %{time_starttransfer}s\n
----------\n
time_total: %{time_total}s\n