Compare commits

...

14 Commits

Author SHA1 Message Date
Marty Oehme 6fdf1cc2e4
writing: Update jrnl version 2023-06-15 09:47:56 +02:00
Marty Oehme 41968e1361
nvim: Integrate null_ls for formatting and linting
Formatting and linting should from now be done with null_ls instead
of formatter.nvim (and nothing for linting so far).

This will still take a little to fully transition, for now we use
null_ls for eslint linting and prettier formatting for a variety
of javascript/typescript and astro files.

null_ls uses Mason installations under the hood and any tool it
uses also gets installed by Mason.
2023-06-15 09:47:32 +02:00
Marty Oehme 3a709bb450
nvim: Replace live grep key chord with fw
Moved the old, a little more cumbersome, mapping <leader>fF to be
<leader>fw instead to start live grepping with telescope.
2023-06-15 09:43:10 +02:00
Marty Oehme 29cb20efcb
bootstrap: Add pipx managed package installation
Packages managed through pipx (and pipx itself) are now also
installed in the initial process. They are marked as coming
from 'P' source in the package TSV. There is a special field
for these packages which declares any injections made by pipx
which will also automatically get injected into the pipx
environment on installation.
2023-06-08 13:05:01 +02:00
Marty Oehme bfe7e7790c
bootstrap: Change yay to paru for pkg installation 2023-06-08 13:03:27 +02:00
Marty Oehme 79910b8bf1
bootstrap: Fix package installer file path 2023-06-08 13:02:45 +02:00
Marty Oehme a43e2cc4bd
river: Switch call to terminal to be more general
Switched the calls for the term variable mappings (opening
term, floating term, calculator, and so on) to make use of
the pretty much standard 'terminal -e' invocation to start
the terminal and execute something within it.

This newly works for wezterm since any release after
2022-12-26, which are now also on the Arch repositories
and will make the river init a tiny bit more portable
whenever wanting to switch to a different terminal.
2023-06-07 10:32:26 +02:00
Marty Oehme 60b89b6d30
githook: Fix showing pkgs in commit message
Quick fix to show difference in committed and installed
packages in the commit editor window again.
Due to Arch moving the base-devel package from a group
to a meta-package we can not just remove all packages
that are in the group anymore - it will simply error
out instead. This removes the check and thus provides
a quick and dirty fix for the time being.
2023-06-07 10:29:25 +02:00
Marty Oehme bce5675795
bootstrap: Remove unclutter package
Removed long overdue unclutter package which is used on
X11 but we switched to wayland around two years ago
now. For this setup, the river window manager takes
care of hiding and showing the mouse pointer.
2023-06-07 10:27:17 +02:00
Marty Oehme bd555608b1
waybar: Update event icons 2023-06-07 10:08:35 +02:00
Marty Oehme 681c48d4f7
nvim: Format plugins file 2023-06-07 10:06:32 +02:00
Marty Oehme e35dec9f9f
nvim: Update spellfile 2023-06-07 10:06:20 +02:00
Marty Oehme de15382415
nvim: Remove spellsitter
Spellsitter funcitonality is long deprecated and included
in the mainline neovim project. So we might as well
remove it from our plugins.
2023-06-07 10:06:10 +02:00
Marty Oehme 92ab289537
nvim: Update plugins 2023-06-07 10:05:16 +02:00
14 changed files with 442 additions and 383 deletions

View File

@ -5,7 +5,7 @@ COMMIT_SOURCE="$2"
BOOTSTRAPDIR="bootstrap"
pkg_committed="$(cat "$(git rev-parse --show-toplevel)"/$BOOTSTRAPDIR/packages*.tsv | grep -v -e '^Name Description Source Target' | cut -f1 | sort)"
pkg_onsystem=$(pacman -Qqett | grep -v "$(pacman -Qqg base-devel)" | sort)
pkg_onsystem=$(pacman -Qqett | sort)
# get files only in repo, and only on machine
only_committed=$(comm -23 <(echo "$pkg_committed") <(echo "$pkg_onsystem"))

View File

@ -7,9 +7,10 @@
# DESCRIPTION: Display usage information for this script.
# PARAMETERS: see usage function
#==============================================================================
PKG_TSV_FILE=${PKG_TSV_FILE:-bootstrap/packages.tsv}
packages_repo="${BOOTSTRAP_PACKAGES:-$(grep -e ' R ' "$PKG_TSV_FILE" | cut -f1 -d' ' )}"
packages_aur="${BOOTSTRAP_PACKAGES_AUR:-$(grep -e ' A ' "$PKG_TSV_FILE" | cut -f1 -d' ' )}"
PKG_TSV_FILE=${PKG_TSV_FILE:-bootstrap/packages_stable.tsv}
packages_repo="${BOOTSTRAP_PACKAGES:-$(grep -e ' R ' "$PKG_TSV_FILE" | cut -f1 -d' ')}"
packages_aur="${BOOTSTRAP_PACKAGES_AUR:-$(grep -e ' A ' "$PKG_TSV_FILE" | cut -f1 -d' ')}"
packages_pipx="${BOOTSTRAP_PACKAGES_PIPX:-$(grep -e ' P ' "$PKG_TSV_FILE" | cut -f1,5 -d' ')}"
main() {
local cmd=""
@ -36,16 +37,16 @@ main() {
exit $ret
}
install_yay() {
# check for existing yay installation
if type yay >/dev/null 2>&1; then
echo "Existing yay installation found ..........................................."
install_paru() {
# check for existing paru installation
if type paru >/dev/null 2>&1; then
echo "Existing paru installation found ..........................................."
return
fi
# use tmp dir to make yay
# use tmp dir to make paru
target=$(mktemp -d)
git clone https://aur.archlinux.org/yay.git "$target"
git clone https://aur.archlinux.org/paru.git "$target"
cd "$target" || exit
makepkg -si
}
@ -53,31 +54,61 @@ install_yay() {
update_repos() {
unattended="$1"
if "$unattended"; then
yay -Sqyy --noconfirm
paru -Sqyy --noconfirm
else
yay -Syy
paru -Syy
fi
}
install_packages() {
unattended="$1"
if "$unattended"; then
echo "$packages_repo" "$packages_aur" | yay -Squ --noconfirm --needed -
echo "$packages_repo" "$packages_aur" | paru -Squ --noconfirm --needed -
else
echo "$packages_repo" | yay -Squ --needed -
echo "$packages_aur" | yay -S --needed -
echo "$packages_repo" | paru -Squ --needed -
echo "$packages_aur" | paru -S --needed -
fi
}
install_pipx() {
if type pipx >/dev/null 2>&1; then
echo "Existing pipx installation found .........................................."
return
fi
if "$unattended"; then
paru -S --noconfirm python-pipx
else
paru -S python-pipx
fi
}
install_pipx_pkgs() {
while IFS= read -r line; do
if [ -z "$line" ]; then return; fi
prog=$(echo "$line" | cut -f1 -d' ')
pipx install "$prog"
injections=$(echo "$line" | cut -f2 -d' ')
for inject_args in ${injections//,/ }; do
pipx inject "$prog" "$inject_args"
done
done <<<"$packages_pipx"
}
install() {
unattended=$1
echo "Beginning package bootstrap ..............................................."
echo "Installing yay ............................................................"
install_yay
echo "Installing paru ............................................................"
install_paru
echo "Installing apps ..........................................................."
update_repos "$unattended"
install_packages "$unattended"
echo "Done ......................................................................"
echo "Installing pipx ..........................................................."
install_pipx
echo "Installing pipx packages .................................................."
install_pipx_pkgs
echo "Done ......................................................................"
}
main "$@"

View File

@ -25,7 +25,9 @@ bash-completion Programmable completion for the bash shell R
bash-language-server Bash language server implementation based on Tree Sitter and its grammar for Bash R
bat Cat clone with syntax highlighting and git integration R
bc An arbitrary precision calculator language R
beancount A personal double entry accounting and budgeting software P beancount-categorizer,beancount-dkb,fava,python-magic,smart-importer
bearssl Implementation of the SSL/TLS protocol (RFC 5246) written in C R
beets Organize your music collection from the command line P beetcamp
bemoji-git Emoji picker that remembers your favorites. A
bibclean BibTeX and Scribe bibliography prettyprinter and syntax checker A
biber A Unicode-capable BibTeX replacement for biblatex users R
@ -61,6 +63,7 @@ dust A more intuitive version of du in rust R
efm-langserver General purpose Language Server A
enca Charset analyser and converter R
entr Run arbitrary commands when files change R
euporie View and work with ipnb Python notebooks from the cli P
exa ls replacement R
exercism-bin Command line client for exercism.io A
exfat-utils Utilities for exFAT file system R
@ -107,6 +110,7 @@ imv Image viewer for Wayland and X11 R
intel-ucode Microcode update files for Intel CPUs R
iputils Network monitoring tools, including ping R
ipython An enhanced Interactive Python shell. R
isbntools A variety of tools to work with isbn addresses P
iucode-tool Tool to manipulate Intel® IA-32/X86-64 microcode bundles R
iwd Internet Wireless Daemon R
jiq-bin Interactive JSON query tool using jq expressions A
@ -148,6 +152,7 @@ maim Utility to take a screenshot using imlib2 R
mako Lightweight notification daemon for Wayland R
man-db A utility for reading man pages R
man-pages Linux man pages R
markdown-anki-decks Construct and modify anki decks directly with markdown P
markdownlint-cli MarkdownLint Command Line Interface A
masterpdfeditor-free A complete solution for creation and editing PDF files - Free version without watermark A
mbsync-git free (GPL) mailbox synchronization program A
@ -198,6 +203,7 @@ offpunk-git Fork of the command-line Gemini client AV-98 with added offline capa
oh-my-zsh-git A community-driven framework for managing your zsh configuration. Includes 180+ optional plugins and over 120 themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community A
os-prober Utility to detect other OSes on a set of drives R
pacman-contrib Contributed scripts and tools for pacman systems R
papis-tui A tui interface for papis bibliography manager P whoosh
parallel A shell tool for executing jobs in parallel R
parsec-bin Remotely connect to a gaming pc for a low latency remote computing experience A
paru-bin Feature packed AUR helper A
@ -307,7 +313,6 @@ tut A TUI for Mastodon with vim inspired keys A
typescript-language-server Language Server Protocol (LSP) implementation for TypeScript using tsserver R
udiskie Removable disk automounter using udisks R
ufw Uncomplicated and easy to use CLI tool for managing a netfilter firewall R
unclutter A small program for hiding the mouse cursor R
unrar The RAR uncompression program R
unrtf Command-line program which converts RTF documents to other formats R
urlview-xdg-git A curses URL parser for text files. Git version, adds support for QUITONLAUNCH option and XDG Base Directory specification compliance. A
@ -343,9 +348,9 @@ xdg-user-dirs Manage user directories like ~/Desktop and ~/Music R
xsv A CLI for indexing, slicing, analyzing, splitting and joining CSV files R
yaml-language-server YAML Language Server R
yarn Fast, reliable, and secure dependency management R
yubikey-manager Python library and command line tool for configuring a YubiKey R
yt-dlp A youtube-dl fork with additional features and fixes R
ytfzf A POSIX script to find and watch youtube videos from the terminal R
yubikey-manager Python library and command line tool for configuring a YubiKey R
zathura-cb Adds comic book support to zathura R
zathura-djvu DjVu support for Zathura R
zathura-pdf-mupdf PDF support for Zathura (MuPDF backend) (Supports PDF, ePub, and OpenXPS) R

Can't render this file because it has a wrong number of fields in line 28.

View File

@ -3,7 +3,7 @@ BOOTSTRAP_DIR=${BOOTSTRAP_DIR:-$(pwd)/bootstrap}
INPUTFILES=$(find "${BOOTSTRAP_DIR}" -type f -name 'packages*.tsv')
OUTPUTFILE=${BOOTSTRAP_DIR}/packages_testing.tsv
pkg_all=$(pacman -Qqett | grep -v "$(pacman -Qqg base-devel)")
pkg_all=$(pacman -Qqett)
pkg_repo=$(pacman -Qqn)
pkg_aur=$(pacman -Qqm)

View File

@ -39,7 +39,7 @@ riverctl map normal $mod+Shift C close
# Open terminal
riverctl map normal $mod Return spawn "$term"
# Open floating terminal
riverctl map normal $mod+Control Return spawn "$term start --class float"
riverctl map normal $mod+Control Return spawn "$term -e --class float"
# Open run menu
riverctl map normal $mod Space spawn "bemenu-run"
@ -61,7 +61,7 @@ riverctl map normal $mod+Shift O spawn "qutedmenu"
riverctl map normal $mod+Shift Space spawn "clipman pick --tool=bemenu"
# Open floating calculator
riverctl map normal $mod+Shift R spawn "$term start --class float -e qalc"
riverctl map normal $mod+Shift R spawn "$term -e --class float qalc"
# Open emoji picker
riverctl map normal $mod+Shift E spawn "bemoji -nt"
@ -77,7 +77,7 @@ riverctl map normal $mod+Shift S spawn 'flavourchoose'
riverctl map normal $mod+Shift P spawn "pass-pick"
# File upload
riverctl map normal $mod+Shift U spawn "$term start --class float -e sharefile | xargs notify-send"
riverctl map normal $mod+Shift U spawn "$term -e --class float sharefile | xargs notify-send"
# # Screenshot
riverctl map normal None Print spawn "screenshot"

View File

@ -51,9 +51,6 @@
"custom/events": {
"format": "{}",
"interval": 300,
"format-icons": {
"default": ""
},
"exec": "~/.config/waybar/modules/khal.py 2>/dev/null",
"exec-if": "command -v khal >/dev/null 2>&1",
"return-type": "json",
@ -144,7 +141,7 @@
"format": "{} 󱐁",
},
"river/window": {
"format": " {}",
"format": " {}",
"max-length": 70
},
"temperature": {

View File

@ -26,9 +26,9 @@ for line in lines:
output = "\n".join(new_lines).strip()
if today in output:
data["text"] = "" + output.split("\n")[1]
data["text"] = " " + output.split("\n")[1]
else:
data["text"] = ""
data["text"] = " "
data["tooltip"] = output

View File

@ -21,52 +21,51 @@
"cmp_luasnip": { "branch": "master", "commit": "18095520391186d634a0045dacaa346291096566" },
"completion-vcard": { "branch": "master", "commit": "2220fd517a985ececed1adcf0e5be8f2815564c7" },
"dial.nvim": { "branch": "master", "commit": "54b503f906bc9e5ab85288414840a1b86d40769f" },
"dressing.nvim": { "branch": "master", "commit": "66e4990240f92e31b0d5e4df6deb6bb0160ae832" },
"dressing.nvim": { "branch": "master", "commit": "f16d7586fcdd8b2e3850d0abb7e46f944125cc25" },
"easyread.nvim": { "branch": "main", "commit": "0b07e315a4cd7d700c4a794bdddbec79fdc2628b" },
"fidget.nvim": { "branch": "main", "commit": "0ba1e16d07627532b6cae915cc992ecac249fb97" },
"formatter.nvim": { "branch": "master", "commit": "fa4f2729cc2909db599169f22d8e55632d4c8d59" },
"friendly-snippets": { "branch": "main", "commit": "1d0dac346de7c6895ac72528df3276386c6b149b" },
"friendly-snippets": { "branch": "main", "commit": "b471f5419155ce832eff71ad8920ea8cfbd54840" },
"fwatch.nvim": { "branch": "main", "commit": "a691f7349dc66285cd75a1a698dd28bca45f2bf8" },
"gitsigns.nvim": { "branch": "main", "commit": "bb808fc7376ed7bac0fbe8f47b83d4bf01738167" },
"jupyter-kernel.nvim": { "branch": "main", "commit": "5b409598033884a3d819e2a3bcd1fe340bc8d783" },
"lazy.nvim": { "branch": "main", "commit": "aba872ec78ffe7f7367764ab0fff6f0170421fde" },
"lazy.nvim": { "branch": "main", "commit": "f145e6f42a56306c5536e9efbfe41f7efbec285d" },
"lightspeed.nvim": { "branch": "main", "commit": "299eefa6a9e2d881f1194587c573dad619fdb96f" },
"lsp-format.nvim": { "branch": "master", "commit": "ca0df5c8544e51517209ea7b86ecc522c98d4f0a" },
"lsp-zero.nvim": { "branch": "v2.x", "commit": "56a50ebe9b0f46ecfabca3f1613084c74fd45414" },
"lsp-zero.nvim": { "branch": "v2.x", "commit": "8fda9a849d6ab4196ecf129905764ddefdfb64b5" },
"lsp_signature.nvim": { "branch": "master", "commit": "4665921ff8e30601c7c1328625b3abc1427a6143" },
"lualine.nvim": { "branch": "master", "commit": "05d78e9fd0cdfb4545974a5aa14b1be95a86e9c9" },
"magma-nvim-goose": { "branch": "main", "commit": "5d916c39c1852e09fcd39eab174b8e5bbdb25f8f" },
"markdown-preview.nvim": { "branch": "master", "commit": "9becceee5740b7db6914da87358a183ad11b2049" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "90a8bbf106b85b76951a34c542058ffa807de2b1" },
"mason.nvim": { "branch": "main", "commit": "253961cfe9b0a63b2524088be294acd7522366e5" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "5230617372e656d4a2e1e236e03bf7e7b4b97273" },
"mason-null-ls.nvim": { "branch": "main", "commit": "cfbd83909cbc56e2f07cb3f8a03157e069c5c91c" },
"mason.nvim": { "branch": "main", "commit": "7d7efc738e08fc5bee822857db45cb6103f0b0c1" },
"mini.nvim": { "branch": "main", "commit": "889be69623395ad183ae6f3c21c8efe006350226" },
"nabla.nvim": { "branch": "master", "commit": "8c143ad2b3ab3b8ffbd51e238ccfcbd246452a7e" },
"neural": { "branch": "main", "commit": "155618730b87a67655bdde373ee27bfce8b07ac9" },
"nui.nvim": { "branch": "main", "commit": "698e75814cd7c56b0dd8af4936bcef2d13807f3c" },
"nui.nvim": { "branch": "main", "commit": "7a524120a7a70761b5a65b602fd235a65cb005aa" },
"null-ls.nvim": { "branch": "main", "commit": "a138b14099e9623832027ea12b4631ddd2a49256" },
"nvim-base16": { "branch": "master", "commit": "4f3aa29f49b38edb6db1c52cea57e64ce3de2373" },
"nvim-cmp": { "branch": "main", "commit": "d153771162bd9795d9f7142df5c674b61066a585" },
"nvim-cmp": { "branch": "main", "commit": "fc0f694af1a742ada77e5b1c91ff405c746f4a26" },
"nvim-colorizer.lua": { "branch": "master", "commit": "dde3084106a70b9a79d48f426f6d6fec6fd203f7" },
"nvim-lspconfig": { "branch": "master", "commit": "df58d91c9351a9dc5be6cf8d54f49ab0d9a64e73" },
"nvim-notify": { "branch": "master", "commit": "bdd647f61a05c9b8a57c83b78341a0690e9c29d7" },
"nvim-surround": { "branch": "main", "commit": "e6047128e57c1aff1566fb9f627521d2887fc77a" },
"nvim-toggleterm.lua": { "branch": "main", "commit": "026dff5e2b504941cf172691561a67ea362596aa" },
"nvim-tree.lua": { "branch": "master", "commit": "89816ace70642e9d3db0dab3dc68918f8979ec31" },
"nvim-lspconfig": { "branch": "master", "commit": "458fa2ee2115c693ca48a04afa65f6de6b40a2db" },
"nvim-notify": { "branch": "master", "commit": "ea9c8ce7a37f2238f934e087c255758659948e0f" },
"nvim-surround": { "branch": "main", "commit": "211eaad7c6d01ef4ac02cba9052b3082ec232101" },
"nvim-toggleterm.lua": { "branch": "main", "commit": "95204ece0f2a54c89c4395295432f9aeedca7b5f" },
"nvim-tree.lua": { "branch": "master", "commit": "f5d970d4506f385b29534252d8c15a782fa53034" },
"nvim-treesitter": { "branch": "master", "commit": "cc360a9beb1b30d172438f640e2c3450358c4086" },
"nvim-treesitter-context": { "branch": "master", "commit": "f24a86c32238867f24fbff49913db0068f8488d2" },
"nvim-treesitter-context": { "branch": "master", "commit": "e2ea37627c0681421ccf4a3cf19d68bb958e1817" },
"nvim-treesitter-textsubjects": { "branch": "master", "commit": "b913508f503527ff540f7fe2dcf1bf1d1f259887" },
"nvim-ts-context-commentstring": { "branch": "main", "commit": "0bf8fbc2ca8f8cdb6efbd0a9e32740d7a991e4c3" },
"nvim-ts-rainbow2": { "branch": "master", "commit": "cee4601ff8aac73dee4afa1074814343bb5a0b80" },
"nvim-web-devicons": { "branch": "master", "commit": "986875b7364095d6535e28bd4aac3a9357e91bbe" },
"otter.nvim": { "branch": "main", "commit": "4630e71b3e94552b7b33ddbfca061d92d0b466c2" },
"nvim-ts-rainbow2": { "branch": "master", "commit": "c00d61ab7517530c49457ba49186776e6611a3e1" },
"nvim-web-devicons": { "branch": "master", "commit": "2a125024a137677930efcfdf720f205504c97268" },
"otter.nvim": { "branch": "main", "commit": "242d180e7f23cc2af6b5d5193bc50909408caef7" },
"playground": { "branch": "master", "commit": "2b81a018a49f8e476341dfcb228b7b808baba68b" },
"plenary.nvim": { "branch": "master", "commit": "253d34830709d690f013daf2853a9d21ad7accab" },
"popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" },
"quarto-nvim": { "branch": "main", "commit": "43898e09b5f49dee35ff01ff0f873e7d600376be" },
"quarto-nvim": { "branch": "main", "commit": "b299266c6287d74b60480fae348d629ec1dc02bb" },
"significant.nvim": { "branch": "main", "commit": "5450e9d5917dc6aa9afb0fcbe32355799b8303fb" },
"smartcolumn.nvim": { "branch": "main", "commit": "0c572e3eae48874f25b74394a486f38cadb5c958" },
"spellsitter.nvim": { "branch": "master", "commit": "4af8640d9d706447e78c13150ef7475ea2c16b30" },
"symbols-outline.nvim": { "branch": "master", "commit": "512791925d57a61c545bc303356e8a8f7869763c" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "580b6c48651cabb63455e97d7e131ed557b8c7e2" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "9bc8237565ded606e6c366a71c64c0af25cd7a50" },
"telescope.nvim": { "branch": "master", "commit": "c1a2af0af69e80e14e6b226d3957a064cd080805" },
"twilight.nvim": { "branch": "main", "commit": "8bb7fa7b918baab1ca81b977102ddb54afa63512" },
"vifm.vim": { "branch": "master", "commit": "a8130c37d144b51d84bee19f0532abcd3583383f" },
@ -77,9 +76,9 @@
"vim-oscyank": { "branch": "main", "commit": "ffe827a27dae98aa826e2295336c650c9a434da0" },
"vim-pandoc-syntax": { "branch": "master", "commit": "4268535e1d33117a680a91160d845cd3833dfe28" },
"vim-spellsync": { "branch": "master", "commit": "3d6dd50de9c4d953cc16638112a6ae196df41463" },
"which-key.nvim": { "branch": "main", "commit": "912ef1a9b018bbe45df1529345e42ae0ac896d63" },
"wrapping.nvim": { "branch": "master", "commit": "c04a7163dc692d80a2907d06a3af8df1fedffec2" },
"which-key.nvim": { "branch": "main", "commit": "e271c28118998c93a14d189af3395812a1aa646c" },
"wrapping.nvim": { "branch": "master", "commit": "5e87f1424c86c50d3bc205830aa56ed1cad45467" },
"zen-mode.nvim": { "branch": "main", "commit": "6e6c963d70a8e47854fa656987666bfb863f9c4e" },
"zettelkasten.nvim": { "branch": "main", "commit": "0e77624689b470410f5355b613d45219c9350264" },
"zk-nvim": { "branch": "main", "commit": "275578853dc76d282ee5b31f86cd3a4f02d91f2f" }
"zk-nvim": { "branch": "main", "commit": "5ddb53688035d115f941f0c8255f6e6618e608ac" }
}

View File

@ -155,7 +155,7 @@ map('n', '<leader>fh',
":lua require 'telescope.builtin'.find_files({hidden=true})<cr>",
{ desc = 'find hidden files' })
-- general full-text search in cwd with rg
map('n', '<leader>fF', ":lua require 'telescope.builtin'.live_grep()<cr>",
map('n', '<leader>fw', ":lua require 'telescope.builtin'.live_grep()<cr>",
{ desc = 'grep search' })
-- git status

View File

@ -1,64 +0,0 @@
-- for each filetype autoformat on save
-- TODO can automatically gather from formatter table keys?
local prettierfmt = {
function()
local set_quotes = "--single-quote"
if vim.bo.filetype == "json" then set_quotes = "--double-quote" end
return {
exe = "prettier",
args = {
"--stdin-filepath", vim.api.nvim_buf_get_name(0), set_quotes
},
stdin = true
}
end
}
local shfmt = {
function() return { exe = "shfmt", args = { "-i 4" }, stdin = true } end
}
local formatters = {
bash = shfmt,
cpp = {
function()
return {
exe = "clang-format",
args = {},
stdin = true,
cwd = vim.fn.expand('%:p:h') -- Run clang-format in cwd of the file.
}
end
},
go = { function() return { exe = "goimports", stdin = true } end },
html = prettierfmt,
javascript = prettierfmt,
json = prettierfmt,
lua = {
function()
return { exe = "lua-format", args = { "--indent-width", 4 }, stdin = true }
end
},
python = { function() return { exe = "black", args = { "-" }, stdin = true } end },
rust = {
function()
return { exe = "rustfmt", args = { "--emit=stdout" }, stdin = true }
end
},
sh = shfmt,
typescript = prettierfmt,
zsh = shfmt
}
require('formatter').setup({ logging = false, filetype = formatters })
-- Format on save:
-- DISABLED FOR NOW, due to messing with git contributions if they
-- do not use a formatter. Instead, formatting with key mapping used.
-- gather filetypes to autocorrect for each activated formatter above
-- for k, _ in pairs(formatters) do
-- vim.api.nvim_create_autocmd({"Filetype " .. k}, {
-- command = "autocmd BufWritePost <buffer> FormatWrite",
-- desc = "Automatically format on write",
-- group = vim.api.nvim_create_augroup('formatonsave', {clear = true})
-- })
-- end

View File

@ -1,234 +1,329 @@
local lsp = require("lsp-zero")
vim.diagnostic.config { virtual_text = true }
vim.diagnostic.config({ virtual_text = true })
vim.fn.sign_define("DiagnosticSignError", { text = "", texthl = "DiagnosticSignError" })
vim.fn.sign_define("DiagnosticSignWarn", { text = "", texthl = "DiagnosticSignWarn" })
vim.fn.sign_define("DiagnosticSignInfo", { text = "", texthl = "DiagnosticSignInfo" })
vim.fn.sign_define("DiagnosticSignHint", { text = "", texthl = "DiagnosticSignHint" })
lsp.ensure_installed({
'arduino_language_server',
'bashls',
'beancount',
'clangd',
'dockerls',
'docker_compose_language_service',
'lua_ls',
'pyright',
'ruff_lsp',
'taplo',
'yamlls',
"astro",
"arduino_language_server",
"bashls",
"beancount",
"clangd",
"dockerls",
"docker_compose_language_service",
"lua_ls",
"pyright",
"ruff_lsp",
"taplo",
"yamlls",
"tsserver",
"cssls",
"tailwindcss",
})
lsp.preset({ name = "recommended", set_lsp_keymaps = false })
lsp.on_attach(function(client, bufnr)
require("lsp-format").on_attach(client, bufnr)
local map = vim.keymap.set
map("n", "[d", "<cmd>lua vim.diagnostic.goto_prev()<cr>", { buffer = bufnr, desc = "Previous diagnostic" })
map("n", "]d", "<cmd>lua vim.diagnostic.goto_next()<cr>", { buffer = bufnr, desc = "Next diagnostic" })
map(
"n",
"[e",
"<cmd>lua vim.diagnostic.goto_prev({severity = vim.diagnostic.severity.ERROR})<cr>",
{ buffer = bufnr, desc = "Previous error" }
)
map(
"n",
"]e",
"<cmd>lua vim.diagnostic.goto_next({severity = vim.diagnostic.severity.ERROR})<cr>",
{ buffer = bufnr, desc = "Next error" }
)
local map = vim.keymap.set
map('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<cr>',
{ buffer = bufnr, desc = 'Previous diagnostic' })
map('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<cr>',
{ buffer = bufnr, desc = 'Next diagnostic' })
map('n', '[e',
'<cmd>lua vim.diagnostic.goto_prev({severity = vim.diagnostic.severity.ERROR})<cr>',
{ buffer = bufnr, desc = 'Previous error' })
map('n', ']e',
'<cmd>lua vim.diagnostic.goto_next({severity = vim.diagnostic.severity.ERROR})<cr>',
{ buffer = bufnr, desc = 'Next error' })
local prefix = require("which-key").register
prefix({ ["<localleader>l"] = { name = "+lsp" } })
map("n", "<localleader>li", "<cmd>LspInfo<cr>", { buffer = bufnr, desc = "Lsp Info" })
map(
"n",
"<localleader>ld",
"<cmd>lua vim.diagnostic.open_float()<cr>",
{ buffer = bufnr, desc = "Line diagnostics" }
)
map("n", "<localleader>la", "<cmd>lua vim.lsp.buf.code_action()<cr>", { buffer = bufnr, desc = "Codeactions" })
map("n", "<localleader>ln", "<cmd>lua vim.lsp.buf.rename()<cr>", { buffer = bufnr, desc = "Rename element" })
if vim.fn.exists(":Telescope") then
map("n", "<localleader>lr", "<cmd>Telescope lsp_references()<cr>", { buffer = bufnr, desc = "References" })
map("n", "<localleader>lf", "<cmd>Telescope lsp_definitions<cr>", { buffer = bufnr, desc = "Definition" })
map(
"n",
"<localleader>lt",
"<cmd>Telescope lsp_type_definitions<cr>",
{ buffer = bufnr, desc = "Type definition" }
)
map(
"n",
"<localleader>lm",
"<cmd>Telescope lsp_implementations<cr>",
{ buffer = bufnr, desc = "Implementation" }
)
else
map("n", "<localleader>lr", "<cmd>lua vim.lsp.buf.references()<cr>", { buffer = bufnr, desc = "References" })
map("n", "<localleader>lf", "<cmd>lua vim.lsp.buf.definition()<cr>", { buffer = bufnr, desc = "Definition" })
map(
"n",
"<localleader>lt",
"<cmd>lua vim.lsp.buf.type_definition()<cr>",
{ buffer = bufnr, desc = "Type definition" }
)
map(
"n",
"<localleader>lm",
"<cmd>lua vim.lsp.buf.implementation()<cr>",
{ buffer = bufnr, desc = "Implementation" }
)
end
if client.server_capabilities.document_formatting then
map(
"n",
"<localleader>lf",
"<cmd>lua vim.lsp.buf.formatting()<CR>",
{ buffer = bufnr, desc = "Format document" }
)
end
local prefix = require('which-key').register
prefix({ ['<localleader>l'] = { name = "+lsp" } })
map('n', '<localleader>li', '<cmd>LspInfo<cr>',
{ buffer = bufnr, desc = 'Lsp Info' })
map('n', '<localleader>ld', '<cmd>lua vim.diagnostic.open_float()<cr>',
{ buffer = bufnr, desc = 'Line diagnostics' })
map('n', '<localleader>la', '<cmd>lua vim.lsp.buf.code_action()<cr>',
{ buffer = bufnr, desc = 'Codeactions' })
map('n', '<localleader>ln', '<cmd>lua vim.lsp.buf.rename()<cr>',
{ buffer = bufnr, desc = 'Rename element' })
if vim.fn.exists(':Telescope') then
map('n', '<localleader>lr', '<cmd>Telescope lsp_references()<cr>',
{ buffer = bufnr, desc = 'References' })
map('n', '<localleader>lf', '<cmd>Telescope lsp_definitions<cr>',
{ buffer = bufnr, desc = 'Definition' })
map('n', '<localleader>lt', '<cmd>Telescope lsp_type_definitions<cr>',
{ buffer = bufnr, desc = 'Type definition' })
map('n', '<localleader>lm', '<cmd>Telescope lsp_implementations<cr>',
{ buffer = bufnr, desc = 'Implementation' })
else
map('n', '<localleader>lr', '<cmd>lua vim.lsp.buf.references()<cr>',
{ buffer = bufnr, desc = 'References' })
map('n', '<localleader>lf', '<cmd>lua vim.lsp.buf.definition()<cr>',
{ buffer = bufnr, desc = 'Definition' })
map('n', '<localleader>lt', '<cmd>lua vim.lsp.buf.type_definition()<cr>',
{ buffer = bufnr, desc = 'Type definition' })
map('n', '<localleader>lm', '<cmd>lua vim.lsp.buf.implementation()<cr>',
{ buffer = bufnr, desc = 'Implementation' })
end
if client.server_capabilities.document_formatting then
map('n', '<localleader>lf', "<cmd>lua vim.lsp.buf.formatting()<CR>",
{ buffer = bufnr, desc = 'Format document' })
end
map('n', 'K', '<cmd>lua vim.lsp.buf.hover()<cr>',
{ buffer = bufnr, desc = 'Hover definition' })
map('n', '<localleader>lc', '<cmd>lua vim.lsp.buf.declaration()<cr>',
{ buffer = bufnr, desc = 'Declaration' })
map('n', '<localleader>ls', '<cmd>lua vim.lsp.buf.signature_help()<cr>',
{ buffer = bufnr, desc = 'Signature help' })
map("n", "K", "<cmd>lua vim.lsp.buf.hover()<cr>", { buffer = bufnr, desc = "Hover definition" })
map("n", "<localleader>lc", "<cmd>lua vim.lsp.buf.declaration()<cr>", { buffer = bufnr, desc = "Declaration" })
map(
"n",
"<localleader>ls",
"<cmd>lua vim.lsp.buf.signature_help()<cr>",
{ buffer = bufnr, desc = "Signature help" }
)
end)
lsp.nvim_workspace()
-- ensure python virtualenv is determined automatically on lsp start
lsp.configure("pyright", {
on_attach = function(client, _)
local python_path, msg = require('util.pyenv').get_path(client.config
.root_dir)
vim.notify(string.format('%s\n%s', msg, python_path))
client.config.settings.python.pythonPath = python_path
end
require("lspconfig").pyright.setup({
on_attach = function(client, _)
local python_path, msg = require("util.pyenv").get_path(client.config.root_dir)
vim.notify(string.format("%s\n%s", msg, python_path))
client.config.settings.python.pythonPath = python_path
end,
})
-- set up arduino with the help of arduino.nvim plugin
require('lspconfig').arduino_language_server.setup({
on_new_config = require('arduino').on_new_config
require("lspconfig").arduino_language_server.setup({
on_new_config = require("arduino").on_new_config,
})
require("lspconfig").lua_ls.setup(lsp.nvim_lua_ls())
-- map filetypes (rhs) to individual servers (lhs)
-- most will presumably use null_ls however
local format_servers = {
["null-ls"] = {
"astro",
"javascript",
"javascriptreact",
"typescript",
"typescriptreact",
"vue",
"css",
"scss",
"less",
"html",
"json",
"jsonc",
"yaml",
"markdown",
"markdown.mdx",
"graphql",
"handlebars",
"python",
"sh",
"zsh",
"bash",
"lua",
"luau",
},
}
lsp.format_on_save({
format_opts = {
async = true,
},
servers = format_servers,
})
lsp.format_mapping("gq", {
format_opts = {
async = false,
},
servers = format_servers,
})
require('lspconfig').lua_ls.setup(lsp.nvim_lua_ls())
lsp.setup()
local null_ls = require("null-ls")
null_ls.setup({})
require("mason-null-ls").setup({
ensure_installed = { "black", "prettier", "shfmt", "eslint-lsp", "stylua", "jq" },
automatic_installation = false,
handlers = {
shfmt = function(_, _)
null_ls.register(null_ls.builtins.formatting.shfmt.with({
extra_filetypes = { "bash", "zsh" },
}))
end,
prettier = function(_, _)
null_ls.register(null_ls.builtins.formatting.prettier.with({
extra_filetypes = { "astro" },
}))
end,
eslint = function(_, _)
null_ls.register(null_ls.builtins.diagnostics.eslint.with({
extra_filetypes = { "astro" },
}))
null_ls.register(null_ls.builtins.code_actions.eslint.with({
extra_filetypes = { "astro" },
}))
end,
},
})
local luasnip = require("luasnip")
local has_words_before = function()
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
end
local kind_icons = {
Text = "",
Method = "",
Function = "",
Constructor = "",
Field = "",
Variable = "",
Class = "",
Interface = "",
Module = "",
Property = "",
Unit = "",
Value = "",
Enum = "",
Keyword = "",
Snippet = "",
Color = "",
File = "",
Reference = "",
Folder = "",
EnumMember = "",
Constant = "",
Struct = "",
Event = "",
Operator = "",
TypeParameter = ""
Text = "",
Method = "",
Function = "",
Constructor = "",
Field = "",
Variable = "",
Class = "",
Interface = "",
Module = "",
Property = "",
Unit = "",
Value = "",
Enum = "",
Keyword = "",
Snippet = "",
Color = "",
File = "",
Reference = "",
Folder = "",
EnumMember = "",
Constant = "",
Struct = "",
Event = "",
Operator = "",
TypeParameter = "",
}
local cmp = require 'cmp'
local cmp = require("cmp")
cmp.setup({
window = {
documentation = cmp.config.window.bordered()
},
snippet = {
expand = function(args)
require('luasnip').lsp_expand(args.body)
end
},
sources = {
{ name = 'nvim_lsp' },
{ name = 'otter' },
{ name = 'luasnip', keyword_length = 2 },
{ name = 'pandoc_references' },
{ name = 'nvim_lua' },
{
name = 'beancount',
option = {
account = vim.env["HOME"] .. '/documents/records/budget/main.beancount' -- TODO implement dynamically
}
},
{ name = 'calc' },
{ name = 'path' },
{ name = 'buffer', keyword_length = 3 },
{ name = 'digraphs' },
{ name = 'latex_symbols' },
{ name = 'spell', keyword_length = 3 },
{ name = 'tmux' },
--{ name = 'rg', keyword_length = 5 },
{ name = 'vCard' },
},
mapping = cmp.mapping.preset.insert({
['<C-b>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
["<CR>"] = cmp.mapping({
i = function(fallback)
if cmp.visible() and cmp.get_active_entry() then
cmp.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = false })
else
fallback()
end
end,
s = cmp.mapping.confirm({ select = true }),
c = cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = false }), -- disable selection in cmd mode
}),
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
-- You could replace the expand_or_jumpable() calls with expand_or_locally_jumpable()
-- they way you will only jump inside the snippet region
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
elseif has_words_before() then
cmp.complete()
else
fallback()
end
end, { "i", "s" }),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, { "i", "s" }),
}),
formatting = {
fields = { "kind", "abbr", "menu" },
format = function(entry, vim_item)
-- Kind icons, removing kind text leaving only icon
-- vim_item.kind = string.format('%s %s', kind_icons[vim_item.kind], vim_item.kind)
vim_item.kind = string.format('%s', kind_icons[vim_item.kind])
-- Source
vim_item.menu = ({
buffer = "[Buf]",
calc = "[Cal]",
digraphs = "[Dig]",
latex_symbols = "[LaTeX]",
luasnip = "[Snip]",
nvim_lsp = "[Lsp]",
nvim_lua = "[Lua]",
pandoc_references = "[Bib]",
spell = "[Spl]",
vCard = "[vCrd]",
})[entry.source.name]
return vim_item
end
},
window = { documentation = cmp.config.window.bordered() },
snippet = {
expand = function(args)
require("luasnip").lsp_expand(args.body)
end,
},
sources = {
{ name = "nvim_lsp" },
{ name = "otter" },
{ name = "luasnip", keyword_length = 2 },
{ name = "pandoc_references" },
{ name = "nvim_lua" },
{
name = "beancount",
option = {
account = vim.env["HOME"] .. "/documents/records/budget/main.beancount", -- TODO implement dynamically
},
},
{ name = "calc" },
{ name = "path" },
{ name = "buffer", keyword_length = 3 },
{ name = "digraphs" },
{ name = "latex_symbols" },
{ name = "spell", keyword_length = 3 },
{ name = "tmux" }, -- { name = 'rg', keyword_length = 5 },
{ name = "vCard" },
},
mapping = cmp.mapping.preset.insert({
["<C-b>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<CR>"] = cmp.mapping({
i = function(fallback)
if cmp.visible() and cmp.get_active_entry() then
cmp.confirm({
behavior = cmp.ConfirmBehavior.Replace,
select = false,
})
else
fallback()
end
end,
s = cmp.mapping.confirm({ select = true }),
c = cmp.mapping.confirm({
behavior = cmp.ConfirmBehavior.Replace,
select = false,
}), -- disable selection in cmd mode
}),
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
-- You could replace the expand_or_jumpable() calls with expand_or_locally_jumpable()
-- they way you will only jump inside the snippet region
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
elseif has_words_before() then
cmp.complete()
else
fallback()
end
end, { "i", "s" }),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, { "i", "s" }),
}),
formatting = {
fields = { "kind", "abbr", "menu" },
format = function(entry, vim_item)
-- Kind icons, removing kind text leaving only icon
-- vim_item.kind = string.format('%s %s', kind_icons[vim_item.kind], vim_item.kind)
vim_item.kind = string.format("%s", kind_icons[vim_item.kind])
-- Source
vim_item.menu = ({
buffer = "[Buf]",
calc = "[Cal]",
digraphs = "[Dig]",
latex_symbols = "[LaTeX]",
luasnip = "[Snip]",
nvim_lsp = "[Lsp]",
nvim_lua = "[Lua]",
pandoc_references = "[Bib]",
spell = "[Spl]",
vCard = "[vCrd]",
})[entry.source.name]
return vim_item
end,
},
})
-- `/` cmdline setup.
cmp.setup.cmdline('/', {
mapping = cmp.mapping.preset.cmdline(),
sources = { { name = 'buffer' } }
cmp.setup.cmdline("/", {
mapping = cmp.mapping.preset.cmdline(),
sources = { { name = "buffer" } },
})
-- `:` cmdline setup.
cmp.setup.cmdline(':', {
mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources({ { name = 'path' } }, {
{ name = 'cmdline', option = { ignore_cmds = { 'Man', '!' } } }
})
cmp.setup.cmdline(":", {
mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources({ { name = "path" } }, {
{ name = "cmdline", option = { ignore_cmds = { "Man", "!" } } },
}),
})

View File

@ -3,20 +3,18 @@ local writing_ft = { "quarto", "pandoc", "markdown", "text", "tex" }
return {
-- essential
{ 'numToStr/Navigator.nvim', branch = "master", config = true }, -- allow seamless navigation between vim buffers and tmux/wezterm splits
{ 'jeffkreeftmeijer/vim-numbertoggle', event = "BufEnter" }, -- toggles numbers to absolute for all buffers but the current which is relative
{ 'ojroques/vim-oscyank', event = "VeryLazy" }, -- yank from *anywhere* (even ssh session) to clipboard, using :OSCYank
{ 'ggandor/lightspeed.nvim', event = "VeryLazy" }, -- jump between letters with improved fFtT quicksearch, mimics sneak
{ 'jeffkreeftmeijer/vim-numbertoggle', event = "BufEnter" }, -- toggles numbers to absolute for all buffers but the current which is relative
{ 'ojroques/vim-oscyank', event = "VeryLazy" }, -- yank from *anywhere* (even ssh session) to clipboard, using :OSCYank
{ 'ggandor/lightspeed.nvim', event = "VeryLazy" }, -- jump between letters with improved fFtT quicksearch, mimics sneak
{
'lewis6991/gitsigns.nvim', -- show vcs changes on left-hand gutter
config = function()
require('plug._gitsigns')
end,
'lewis6991/gitsigns.nvim', -- show vcs changes on left-hand gutter
config = function() require('plug._gitsigns') end,
event = "BufRead"
}, { "m4xshen/smartcolumn.nvim", config = true }, -- auto-hiding colorcolumn
-- files
{ 'vifm/vifm.vim' }, -- integrate file manager
{ 'vifm/vifm.vim' }, -- integrate file manager
{
'nvim-tree/nvim-tree.lua', -- integrate file tree
'nvim-tree/nvim-tree.lua', -- integrate file tree
config = true,
dependencies = { 'nvim-tree/nvim-web-devicons', config = true },
cmd = "NvimTreeToggle"
@ -26,23 +24,17 @@ return {
event = "BufWinEnter",
dependencies = { 'rktjmp/fwatch.nvim' }
}, {
'NvChad/nvim-colorizer.lua', -- color hex, named colors in the correct preview scheme
'NvChad/nvim-colorizer.lua', -- color hex, named colors in the correct preview scheme
config = function()
require('colorizer').setup({
user_default_options = {
mode = 'virtualtext'
}
user_default_options = { mode = 'virtualtext' }
})
end,
event = "VeryLazy"
}, {
'mhartington/formatter.nvim', -- auto formatting on save
config = function() require('plug._format') end,
event = "VeryLazy"
}, -- editing
}, -- editing
{ 'kylechui/nvim-surround', version = '*', config = true, event = "VeryLazy" }, -- surround things with other things using ys/cs/ds
{
'monaqa/dial.nvim', -- extend the ^a / ^x possibilities to dates, hex, alphabets, markdown headers
'monaqa/dial.nvim', -- extend the ^a / ^x possibilities to dates, hex, alphabets, markdown headers
config = function()
local augend = require("dial.augend")
require("dial.config").augends:register_group {
@ -58,8 +50,8 @@ return {
augend.constant.alias.Alpha, augend.constant.alias.alpha,
augend.hexcolor.new { case = "lower" }, augend.constant.new {
elements = { "and", "or" },
word = true, -- if false, "sand" is incremented into "sor", "doctor" into "doctand", etc.
cyclic = true -- "or" is incremented into "and".
word = true, -- if false, "sand" is incremented into "sor", "doctor" into "doctand", etc.
cyclic = true -- "or" is incremented into "and".
},
augend.constant
.new {
@ -72,12 +64,12 @@ return {
end,
event = "VeryLazy"
}, {
'tommcdo/vim-exchange', -- adds exchange operator with cx. common use: cxiw . on 2 words to switch
'tommcdo/vim-exchange', -- adds exchange operator with cx. common use: cxiw . on 2 words to switch
event = "VeryLazy"
}, {
'junegunn/vim-easy-align', -- Align tables and other alignable things
'junegunn/vim-easy-align', -- Align tables and other alignable things
event = "VeryLazy"
}, { 'edKotinsky/Arduino.nvim', ft = 'arduino', config = true }, -- statusline
}, { 'edKotinsky/Arduino.nvim', ft = 'arduino', config = true }, -- statusline
{
'nvim-lualine/lualine.nvim',
requires = { 'nvim-tree/nvim-web-devicons', config = true },
@ -130,22 +122,22 @@ return {
desc = "Inspect object in kernel"
}
}
}, { 'micarmst/vim-spellsync', event = "VeryLazy" }, -- personal dict improvements for git sync
}, { 'micarmst/vim-spellsync', event = "VeryLazy" }, -- personal dict improvements for git sync
{ 'folke/zen-mode.nvim', config = true, event = "VeryLazy" }, -- provide distraction free writing
{ 'folke/twilight.nvim', event = "VeryLazy" }, -- provide even distraction free-er writing (lowlight paragraphs)
{ 'folke/twilight.nvim', event = "VeryLazy" }, -- provide even distraction free-er writing (lowlight paragraphs)
{
'JellyApple102/easyread.nvim',
config = true,
ft = writing_ft,
cmd = 'EasyreadToggle'
}, -- enable 'speed-reading' mode (bionic reading)
{ 'marty-oehme/zettelkasten.nvim', ft = writing_ft, event = "VeryLazy" }, -- simple static markdown linking
}, -- enable 'speed-reading' mode (bionic reading)
{ 'marty-oehme/zettelkasten.nvim', ft = writing_ft, event = "VeryLazy" }, -- simple static markdown linking
{
"iamcco/markdown-preview.nvim", -- generate an auto-updating html preview for md files
"iamcco/markdown-preview.nvim", -- generate an auto-updating html preview for md files
build = function() vim.fn["mkdp#util#install"]() end,
ft = writing_ft
}, -- languages
{ 'euclidianAce/BetterLua.vim', ft = 'lua' }, -- better syntax highlighting for lua
}, -- languages
{ 'euclidianAce/BetterLua.vim', ft = 'lua' }, -- better syntax highlighting for lua
{ 'aliou/bats.vim', ft = { "bash", "sh", "zsh", "bats" } }, -- enable syntax for bats shell-code testing library
-- REPL work
@ -161,7 +153,7 @@ return {
version = '*',
config = function() require('plug._mini') end
}, {
"akinsho/nvim-toggleterm.lua", -- simpler, programmable and multiple terminal toggling for nvim
"akinsho/nvim-toggleterm.lua", -- simpler, programmable and multiple terminal toggling for nvim
config = function() require('plug._toggleterm') end
},
{
@ -180,7 +172,7 @@ return {
source = { openai = { api_key = vim.env.OPENAI_API_KEY } }
})
end
}, -- treesitter
}, -- treesitter
{
'nvim-treesitter/nvim-treesitter',
build = ':TSUpdate',
@ -194,10 +186,9 @@ return {
{ 'romgrk/nvim-treesitter-context', config = true },
'JoosepAlviste/nvim-ts-context-commentstring'
}
},
{ 'nvim-treesitter/playground', cmd = "TSPlaygroundToggle" }, -- interactively view and query the treesitter tree
}, { 'nvim-treesitter/playground', cmd = "TSPlaygroundToggle" }, -- interactively view and query the treesitter tree
{
'RRethy/nvim-treesitter-textsubjects', -- allows using . and ; to target treesitter branches
'RRethy/nvim-treesitter-textsubjects', -- allows using . and ; to target treesitter branches
config = function()
require 'nvim-treesitter.configs'.setup {
textsubjects = {
@ -211,36 +202,39 @@ return {
end,
event = "BufReadPre"
}, {
'lewis6991/spellsitter.nvim', -- uses treesitter to highlight spelling errors
config = function() require('spellsitter').setup() end,
event = "BufReadPre"
}, -- lsp
{
"VonHeikemen/lsp-zero.nvim",
-- lsp
"VonHeikemen/lsp-zero.nvim",
dependencies = {
{ "neovim/nvim-lspconfig", branch = "master" },
"williamboman/mason.nvim", "williamboman/mason-lspconfig.nvim", {
"hrsh7th/nvim-cmp",
branch = "main",
dependencies = {
{ "neovim/nvim-lspconfig", branch = "master" },
"williamboman/mason.nvim", "williamboman/mason-lspconfig.nvim", {
"hrsh7th/nvim-cmp",
branch = "main",
"andersevenrud/cmp-tmux", "cbarrete/completion-vcard",
"f3fora/cmp-spell", "hrsh7th/cmp-nvim-lsp",
"hrsh7th/cmp-path", "hrsh7th/cmp-buffer",
"hrsh7th/cmp-calc", "hrsh7th/cmp-cmdline",
"hrsh7th/cmp-nvim-lua", "dmitmel/cmp-digraphs",
"jc-doyle/cmp-pandoc-references",
"kdheepak/cmp-latex-symbols", "lukas-reineke/cmp-rg",
"crispgm/cmp-beancount", "ray-x/cmp-treesitter",
"saadparwaiz1/cmp_luasnip"
}
}, "L3MON4D3/LuaSnip", "rafamadriz/friendly-snippets",
-- { "lukas-reineke/lsp-format.nvim", config = true },
{ "j-hui/fidget.nvim", config = true }, -- loading animations for some LSP
{
"jay-babu/mason-null-ls.nvim",
event = { "BufReadPre", "BufNewFile" },
dependencies = {
"andersevenrud/cmp-tmux", "cbarrete/completion-vcard",
"f3fora/cmp-spell", "hrsh7th/cmp-nvim-lsp",
"hrsh7th/cmp-path", "hrsh7th/cmp-buffer",
"hrsh7th/cmp-calc", "hrsh7th/cmp-cmdline",
"hrsh7th/cmp-nvim-lua", "dmitmel/cmp-digraphs",
"jc-doyle/cmp-pandoc-references",
"kdheepak/cmp-latex-symbols", "lukas-reineke/cmp-rg",
"crispgm/cmp-beancount", "ray-x/cmp-treesitter",
"saadparwaiz1/cmp_luasnip"
}
}, "L3MON4D3/LuaSnip", "rafamadriz/friendly-snippets",
{ "lukas-reineke/lsp-format.nvim", config = true },
{ "j-hui/fidget.nvim", config = true } -- loading animations for some LSP
},
config = function() require('plug._lsp') end,
branch = "v2.x"
}, { 'simrat39/symbols-outline.nvim', config = true, event = "VeryLazy" }, -- vista-like outline view for code
{ 'ray-x/lsp_signature.nvim', config = true }, -- UI improvements
"williamboman/mason.nvim", "jose-elias-alvarez/null-ls.nvim"
},
}
},
config = function() require('plug._lsp') end,
branch = "v2.x"
}, { 'simrat39/symbols-outline.nvim', config = true, event = "VeryLazy" }, -- vista-like outline view for code
{ 'ray-x/lsp_signature.nvim', config = true }, -- UI improvements
{ 'stevearc/dressing.nvim', config = true }, {
'rcarriga/nvim-notify',
config = function() vim.notify = require("notify") end

View File

@ -181,3 +181,5 @@ positivity
dataset
endogeneity
outliers
GitLab
Gitea

View File

@ -16,4 +16,4 @@ linewrap: 79
tagsymbols: '#@'
template: false
timeformat: '%F %r'
version: v3.3
version: v4.0