Neorg is fine but not for me right now (especially with its own syntax spec). zk seems to fit my workflow much better, this is the beginning of trying it out.
200 lines
9 KiB
Lua
200 lines
9 KiB
Lua
local writing_ft = { "quarto", "pandoc", "markdown", "text", "tex" }
|
|
|
|
return {
|
|
-- vim plugs
|
|
-- essential
|
|
{ 'numToStr/Navigator.nvim', 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
|
|
-- files
|
|
{ 'vifm/vifm.vim' }, -- integrate file manager
|
|
{
|
|
'lewis6991/gitsigns.nvim', -- show vcs changes on left-hand gutter
|
|
config = true,
|
|
event = "BufRead"
|
|
}, {
|
|
'norcalli/nvim-colorizer.lua', -- color hex, named colors in the correct preview scheme
|
|
config = true,
|
|
event = "VeryLazy"
|
|
}, {
|
|
'mhartington/formatter.nvim', -- auto formatting on save
|
|
config = function() require('plug._format') end,
|
|
event = "VeryLazy"
|
|
}, -- 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
|
|
config = function()
|
|
local augend = require("dial.augend")
|
|
require("dial.config").augends:register_group {
|
|
-- default augends used when no group name is specified
|
|
default = {
|
|
augend.integer.alias.decimal, augend.integer.alias.hex,
|
|
augend.date.alias["%Y/%m/%d"],
|
|
augend.date.alias["%Y-%m-%d"], augend.date.alias["%m/%d"],
|
|
augend.date.alias["%H:%M:%S"], augend.date.alias["%H:%M"],
|
|
augend.constant.alias.de_weekday_full,
|
|
augend.constant.alias.de_weekday,
|
|
augend.constant.alias.bool, augend.semver.alias.semver,
|
|
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".
|
|
},
|
|
augend.constant
|
|
.new {
|
|
elements = { "&&", "||" },
|
|
word = false,
|
|
cyclic = true
|
|
}
|
|
}
|
|
}
|
|
end,
|
|
event = "VeryLazy"
|
|
}, {
|
|
'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
|
|
event = "VeryLazy"
|
|
}, -- colorschemes
|
|
{ 'norcalli/nvim-base16.lua' }, --
|
|
-- statusline
|
|
{
|
|
'nvim-lualine/lualine.nvim',
|
|
requires = { 'kyazdani42/nvim-web-devicons', opt = true },
|
|
config = function() require('plug._lualine') end
|
|
}, -- writing
|
|
{ 'vim-pandoc/vim-criticmarkup', ft = writing_ft }, {
|
|
'mickael-menu/zk-nvim',
|
|
config = function() require('zk').setup({ picker = "telescope" }) end
|
|
}, {
|
|
'quarto-dev/quarto-nvim',
|
|
dependencies = {
|
|
'jmbuhr/otter.nvim', 'neovim/nvim-lspconfig',
|
|
'vim-pandoc/vim-pandoc-syntax'
|
|
},
|
|
config = function()
|
|
require 'quarto'.setup {
|
|
lspFeatures = {
|
|
enabled = true,
|
|
languages = { 'r', 'python', 'julia' },
|
|
diagnostics = { enabled = true, triggers = { "BufWrite" } },
|
|
completion = { enabled = true }
|
|
}
|
|
}
|
|
end,
|
|
ft = writing_ft
|
|
}, { '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)
|
|
{ '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
|
|
build = function() vim.fn["mkdp#util#install"]() end,
|
|
ft = writing_ft
|
|
}, -- 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
|
|
{
|
|
'WhiteBlackGoose/magma-nvim-goose',
|
|
build = ":UpdateRemotePlugins",
|
|
config = function()
|
|
vim.g.magma_image_provider = "kitty"
|
|
vim.g.magma_automatically_open_output = false
|
|
end
|
|
}, -- nvim plugs
|
|
{
|
|
'echasnovski/mini.nvim',
|
|
version = '*',
|
|
config = function() require('plug._mini') end
|
|
}, {
|
|
"akinsho/nvim-toggleterm.lua", -- simpler, programmable and multiple terminal toggling for nvim
|
|
config = function() require('plug._toggleterm') end,
|
|
event = "BufWinEnter"
|
|
},
|
|
{
|
|
"folke/which-key.nvim",
|
|
config = function() require("which-key").setup {} end
|
|
}, -- fuzzy matching
|
|
{ "nvim-telescope/telescope-fzf-native.nvim", build = 'make' }, {
|
|
"nvim-telescope/telescope.nvim",
|
|
dependencies = { "nvim-lua/popup.nvim", "nvim-lua/plenary.nvim" },
|
|
config = function() require('plug._telescope') end
|
|
}, -- treesitter
|
|
{
|
|
'nvim-treesitter/nvim-treesitter',
|
|
build = ':TSUpdate',
|
|
config = function() require('plug._treesitter') end
|
|
}, { 'nvim-treesitter/playground', cmd = "TSPlaygroundToggle" }, -- interactively view and query the treesitter tree
|
|
{ 'romgrk/nvim-treesitter-context', event = "BufReadPre", config = true }, -- show current cursor context at top of buffer
|
|
{
|
|
'RRethy/nvim-treesitter-textsubjects', -- allows using . and ; to target treesitter branches
|
|
config = function()
|
|
require 'nvim-treesitter.configs'.setup {
|
|
textsubjects = {
|
|
enable = true,
|
|
keymaps = {
|
|
['.'] = 'textsubjects-smart',
|
|
[';'] = 'textsubjects-container-outer'
|
|
}
|
|
}
|
|
}
|
|
end,
|
|
event = "BufReadPre"
|
|
}, { 'p00f/nvim-ts-rainbow', event = "BufReadPre" }, -- rainbow brackets using treesitter
|
|
{ 'JoosepAlviste/nvim-ts-context-commentstring', event = "BufReadPre" }, -- improves commenting plugin above by using ts
|
|
{
|
|
'lewis6991/spellsitter.nvim', -- uses treesitter to highlight spelling errors
|
|
config = function() require('spellsitter').setup() end,
|
|
event = "BufReadPre"
|
|
}, -- lsp
|
|
{
|
|
"VonHeikemen/lsp-zero.nvim",
|
|
dependencies = {
|
|
"neovim/nvim-lspconfig", "williamboman/mason.nvim",
|
|
"williamboman/mason-lspconfig.nvim", "hrsh7th/nvim-cmp",
|
|
"hrsh7th/cmp-buffer", "hrsh7th/cmp-path",
|
|
"saadparwaiz1/cmp_luasnip", "hrsh7th/cmp-nvim-lsp",
|
|
"hrsh7th/cmp-nvim-lua", "L3MON4D3/LuaSnip",
|
|
"rafamadriz/friendly-snippets", "andersevenrud/cmp-tmux",
|
|
"hrsh7th/cmp-nvim-lsp", "kdheepak/cmp-latex-symbols",
|
|
"ray-x/cmp-treesitter", "f3fora/cmp-spell", "hrsh7th/cmp-cmdline",
|
|
"cbarrete/completion-vcard", {
|
|
'aspeddro/cmp-pandoc.nvim',
|
|
dependencies = { 'nvim-lua/plenary.nvim', 'jbyuki/nabla.nvim' },
|
|
event = "InsertEnter"
|
|
}, { "lukas-reineke/lsp-format.nvim", config = true }
|
|
},
|
|
config = function() require('plug._cmp') end
|
|
}, { 'simrat39/symbols-outline.nvim', config = true, event = "VeryLazy" }, -- vista-like outline view for code
|
|
{ 'ray-x/lsp_signature.nvim', event = "VeryLazy" },
|
|
{ 'ray-x/guihua.lua', build = 'cd lua/fzy && make', event = "VeryLazy" }, {
|
|
'ray-x/navigator.lua',
|
|
config = function() require('plug._lsp') end,
|
|
event = "VeryLazy"
|
|
}, -- and completion
|
|
-- { -- REQUIRES custom `yay -S --asdeps lua51-lyaml invocation` AND is suuper slow
|
|
-- "jghauser/papis.nvim",
|
|
-- after = { "telescope.nvim", "nvim-cmp" },
|
|
-- dependencies = {
|
|
-- "kkharji/sqlite.lua", "nvim-lua/plenary.nvim",
|
|
-- "MunifTanjim/nui.nvim", "nvim-treesitter/nvim-treesitter"
|
|
-- },
|
|
-- ft = writing_ft,
|
|
-- rocks = { "lyaml" },
|
|
-- config = function()
|
|
-- require('papis').setup({
|
|
-- papis_python = {
|
|
-- dir = "/home/marty/documents/library/academia",
|
|
-- info_name = "info.yaml",
|
|
-- notes_name = [[notes.qmd]]
|
|
-- }
|
|
-- })
|
|
-- end
|
|
-- }
|
|
}
|