Compare commits

..

82 Commits

Author SHA1 Message Date
1f39139f1d chore(mappings): format 2025-06-21 18:06:54 +02:00
1d59bfc4cb fix(paste): add paste in neovide 2025-06-21 18:06:49 +02:00
03192ef86a fix(ltex_ls): add some ignore rules 2025-05-21 13:40:36 +02:00
fd61b53dbd feat(diagnostic): add toggle binding 2025-05-21 13:40:14 +02:00
e047151a72 chore(lazy): upgrade and fix breaking changes in major mason revision 2025-05-17 12:49:35 +02:00
989f9163c0 feat(lsp): use virtual lines 2025-05-17 12:49:12 +02:00
a52c4bf561 fix(neorg): gO to open toc 2025-05-12 10:17:20 +02:00
aa829327b5 refactor(lualine): move lualine config to a new file
- Add a function for the word counter
2025-05-06 17:06:46 +02:00
e934e38bd0 feat(lualine): add counters to lualine
- Word, character and line counters upon selection
- From https://www.reddit.com/r/neovim/comments/1130kh5/comment/j8navg6/
2025-05-06 14:06:07 +02:00
031e7694a5 fix(lsp): ltex_plus → ltex_ls_plus
- Naming conflicts with lspconfig: the `filetypes` field was overwritten
  by lspconfig.
2025-04-30 14:44:12 +02:00
44be63bc2e chore(lazy): upgrade
- For neorg
2025-04-17 11:23:33 +02:00
7e5c198296 feat(lualine): add relative path in filename
- Useful for node architecture where everything is named `inner.js`
2025-04-07 15:31:47 +02:00
0a2c5aae5e fix(lsp): align comment 2025-04-07 14:30:44 +02:00
3fce227c18 fix(lsp): add neorg markup to ltex-ls-plus 2025-04-06 09:59:25 +02:00
14c5786b21 fix(lsp): missing field for Mason setup 2025-04-03 15:42:42 +02:00
2685b0f813 fix: vim.diagnostic.goto_{next/prev} is deprecated
- {],[}d are default since nvim 0.10
	- https://neovim.io/doc/user/news-0.10.html#_new-features
2025-04-03 14:52:06 +02:00
62fc616ee8 chore(lazy): upgrade 2025-04-03 09:32:53 +02:00
2719672e6a feat(lsp/mason): add tinymist (typst lsp) 2025-04-02 09:14:11 +02:00
f9152e058b fix(cmp): lsp completion called twice 2025-04-02 08:58:25 +02:00
23d2b1bee8 fix(lsp): order LSP/DAP
- minor change
2025-04-02 08:50:42 +02:00
aefc57c0f7 fix(LSP): typo in rust-analyzer 2025-04-02 08:28:07 +02:00
8460677953 feat(lsp): Move LSP config for godot and rust for 0.11 2025-04-01 23:38:29 +02:00
2cc2998907 fix(jj): replace jj with jjdescription filetype 2025-04-01 19:01:44 +02:00
2a35077571 feat(lsp): remove on_attach 2025-04-01 19:01:35 +02:00
5c17ad21d2 feat(lsp): replace on_attach with an LspAttach rule 2025-04-01 18:57:18 +02:00
3ff49b2567 feat!(lsp): move ltex-ls-plus to neovim native LSP config
- BREAKING CHANGE: need neovim >0.11
	- https://neovim.io/doc/user/news-0.11.html#_lsp
2025-04-01 18:25:38 +02:00
d150b64747 chore(lazy): upgrade 2025-03-27 17:12:08 +01:00
82a68ba7d5 fix(plugins): markdownpreview build
- From <https://github.com/iamcco/markdown-preview.nvim/issues/704#issuecomment-2480811133>
2025-03-27 16:32:20 +01:00
c52171c11e feat(neorg): add nev to open export in vertical pane 2025-03-24 19:42:12 +01:00
b0f478ac92 feat(mapping): add tab for opening/closing folds 2025-03-23 12:58:32 +01:00
98f079fb81 refactor(mappings): move undotree mapping 2025-03-23 12:58:04 +01:00
04a7ec0218 feat(plugins): add undotree
- BREAKING CHANGE: keymap `U` to toggle undotree
2025-03-23 10:18:50 +01:00
85193f19fd fix(lazy): unpin neorg to get the latest version
- Experimental, may not stay
2025-03-22 14:59:22 +01:00
0a044ca3d4 feat(plugins): add oil.nvim
- For a trial period
2025-03-20 22:00:33 +01:00
b2881a4504 feat(ltex-lsp): Add support for plain text 2025-03-20 10:52:15 +01:00
84613d7e1f chore(lazy): upgrade 2025-03-12 12:18:22 +01:00
dd8583d064 chore(mappings): formatting 2025-03-04 20:05:11 +01:00
9af5411235 chores(lazy): upgrade 2025-03-04 12:31:20 +01:00
b13cdaea9d fix(mappings): decrease increment in visual mode
- Mistake in copy-paste the previous line
2025-02-27 11:43:27 +01:00
6caf44226f feat(lsp): Change the checkfrequency of ltex-ls-plus
- “On Save” instead of “On Edit” (which was calling languagetool too often)
2025-02-27 11:29:35 +01:00
a3438de2fc feat!(lsp): use ltex-plus instead of ltex
- BREAKING CHANGE: it is now required to install ltex-plus on the
  different machines
- Add some exceptions for `false friends` in English
2025-02-25 11:46:54 +01:00
86a58e267e feat(mappings): visual mapping for >/<
- Inspired by https://github.com/Nuclear-Squid/dotFiles/blob/master/nvim/init.lua#L169-L170
2025-02-18 22:45:47 +01:00
c15198b661 feat(mapping): add some yank mappings 2025-02-18 22:42:04 +01:00
0af5352a17 revert(autocommand): revert back to markdown autocommand trigger
- reverts b6dae05d63
- Some weird behaviour where things where detected as pandoc at random
2025-02-17 15:12:41 +01:00
3508cdd8f6 feat(snippets): add some github issues snippets for meeting notes 2025-02-17 13:51:54 +01:00
ea672511d8 chore(lazy): upgrades 2025-02-17 12:02:04 +01:00
4cdb232020 feat(mappings): add a mapping to toggle hlsearch 2025-02-16 22:03:10 +01:00
fc034ea90f fix(autocommand): activation condition for markdown 2025-02-15 12:52:18 +01:00
765e2d1a8b chores(lazy): upgrade 2025-02-14 12:43:14 +01:00
faea5c2b0c fix(autocommand): typo
- Same as previously: missing l in `spelllang`
2025-02-11 19:58:24 +01:00
758f448b2f docs(readme): typo 2025-02-11 19:56:11 +01:00
7783b8eb60 fix(autocommand): fix typo for tex autocommand
- Missing l in `spelllang`
2025-02-11 17:02:08 +01:00
623ca0a753 fix(spelling): use french + english dictionnaries by default
- Better ease of use
- May not capture everything, the shortcuts are there for that
2025-02-11 16:13:27 +01:00
2651b5944b docs(readme): precision 2025-02-11 09:47:34 +01:00
983e8ff195 chores(mappings): reformat + fix a typo 2025-02-10 17:36:30 +01:00
ea402d4c4e feat(mapping): add shortcuts for spelling 2025-02-10 17:34:54 +01:00
b6dae05d63 fix(autocommand): spelling on BufNew
- Change spelling on bufEnter and bufWinEnter that rerun commands too
  many times (even when override)
2025-02-10 17:05:51 +01:00
e86ab765d7 chore(lazy): upgrade 2025-01-29 11:39:21 +01:00
49407e023c feat(ltex): ignore some false-friend rules 2025-01-29 11:38:32 +01:00
f29b3368bc chores(lazy): upgrade 2025-01-26 10:14:59 +01:00
631f476d35 chores(lazy): upgrade 2025-01-23 16:05:10 +01:00
562187bf5a feat(telescope): add workspace symbol search 2024-12-21 23:51:25 +01:00
6df3ba48b7 feat(lsp): add bashls 2024-12-16 15:17:08 +01:00
765f2c3648 chore(lazy): update 2024-12-16 09:57:14 +01:00
dfe5d608e2 chore(lazy): update 2024-12-12 17:11:01 +01:00
ba9775b108 refactor(all): replace vim.api.nvim_set_keymap with vim.keymap.set 2024-12-11 15:55:19 +01:00
d0cbb36a44 refactor(neorg): replace vim.api.nvim_set_keymap with vim.keymap.set
`vim.keymap.set` is more lua-friendly
2024-12-11 15:50:10 +01:00
398736176c feat(neorg): Telescope live_grep in neorg working directory 2024-12-11 15:47:53 +01:00
4f45e89025 fix!(scratchpads): change scratchpad.md with scratch.md
BREAKING CHANGE: the name of scratchpads changed
2024-11-29 12:28:58 +01:00
ef2bdaf201 fix(which-key): remove neorg modes for now 2024-11-29 11:44:52 +01:00
9a940a9ba4 feat(bindings): add markdown scratchpads 2024-11-29 11:43:31 +01:00
49acc75e2a fix(ltex-lsp): forgot a rule 2024-11-13 12:04:15 +01:00
48c698c2c5 fix(lsp): option name: dictionnary → dictionary 2024-11-13 11:35:48 +01:00
26f875171f chore(lock): update 2024-11-12 11:01:56 +01:00
4775d23ed4 refactor(lazy): Move to plugins-configure for consistency 2024-11-11 11:01:41 +01:00
88cd86eb8c chores(init): cleanup 2024-11-11 10:56:57 +01:00
5bfbc64cf0 fix?(neorg): Default keybinds
- Not sure if it works…
2024-11-11 10:54:01 +01:00
f8acdeac19 refactor(neorg): scope of some bindings 2024-11-11 10:49:04 +01:00
7b8db55790 feat(neorg): completion with cmp 2024-11-11 10:38:10 +01:00
cde7f74d0b feat(neorg): add telescope search 2024-11-11 10:29:10 +01:00
74515e706b chores: lazy upgrade 2024-11-10 16:42:54 +01:00
f1a52d9dcb fix(treesitter): necessary field 2024-11-10 16:40:37 +01:00
16 changed files with 438 additions and 231 deletions

View File

@ -28,7 +28,7 @@ vim.opt.rtp:prepend(lazypath)
-- --
-- You can also configure plugins after the setup call, -- You can also configure plugins after the setup call,
-- as they will be available in your neovim runtime. -- as they will be available in your neovim runtime.
require('lazy-configure') require('plugins-configure')
-- [[ Setting options ]] -- [[ Setting options ]]
require('general-options') require('general-options')
@ -62,8 +62,10 @@ require('complete')
-- [[ Configure neorg ]] -- [[ Configure neorg ]]
require('neorg-configure') require('neorg-configure')
-- [[ Configure status line ]]
require('statusline')
-- Customizations -- Customizations
-- require('bepo')
require('restore-position') require('restore-position')
require('autocommands') require('autocommands')

View File

@ -1,46 +1,50 @@
{ {
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, "Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
"LuaSnip": { "branch": "master", "commit": "2737edc9e674e537dc0a97e3405658d57d2d31ed" }, "LuaSnip": { "branch": "master", "commit": "c1851d5c519611dfc451b6582961b2602e0af89b" },
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, "cmp-nvim-lsp": { "branch": "main", "commit": "a8912b88ce488f411177fc8aed358b04dc246d7b" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp-path": { "branch": "main", "commit": "c6635aae33a50d6010bf1aa756ac2398a2d54c32" },
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
"fidget.nvim": { "branch": "main", "commit": "e2a175c2abe2d4f65357da1c98c59a5cfb2b543f" }, "fidget.nvim": { "branch": "main", "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" },
"friendly-snippets": { "branch": "main", "commit": "de8fce94985873666bd9712ea3e49ee17aadb1ed" }, "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
"gitsigns.nvim": { "branch": "main", "commit": "4daf7022f1481edf1e8fb9947df13bb07c18e89a" }, "gitsigns.nvim": { "branch": "main", "commit": "39e0d1cd44eafed5f30c372e377ab1cb1781ec9f" },
"indent-blankline.nvim": { "branch": "master", "commit": "e51b651ca26cba250ef3a1150c8d35045eee2a84" }, "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" },
"lazy.nvim": { "branch": "main", "commit": "60cf258a9ae7fffe04bb31141141a91845158dcc" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
"lazydev.nvim": { "branch": "main", "commit": "d5800897d9180cea800023f2429bce0a94ed6064" }, "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" },
"lsp_signature.nvim": { "branch": "master", "commit": "fc38521ea4d9ec8dbd4c2819ba8126cea743943b" }, "lsp_signature.nvim": { "branch": "master", "commit": "a4e3c15dfdce8783c074539b1835edae75fa63d5" },
"lua-utils.nvim": { "branch": "main", "commit": "e565749421f4bbb5d2e85e37c3cef9d56553d8bd" }, "lua-utils.nvim": { "branch": "main", "commit": "e565749421f4bbb5d2e85e37c3cef9d56553d8bd" },
"lualine.nvim": { "branch": "master", "commit": "2a5bae925481f999263d6f5ed8361baef8df4f83" }, "lualine.nvim": { "branch": "master", "commit": "15884cee63a8c205334ab13ab1c891cd4d27101a" },
"luarocks.nvim": { "branch": "main", "commit": "1db9093915eb16ba2473cfb8d343ace5ee04130a" }, "luarocks.nvim": { "branch": "main", "commit": "1db9093915eb16ba2473cfb8d343ace5ee04130a" },
"luvit-meta": { "branch": "main", "commit": "ce76f6f6cdc9201523a5875a4471dcfe0186eb60" }, "luvit-meta": { "branch": "main", "commit": "1df30b60b1b4aecfebc785aa98943db6c6989716" },
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" }, "markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "4d0e5b49363cac187326998b96aa6a2884e0e89b" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "d39a75bbce4b8aad5d627191ea915179c77c100f" },
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" }, "mason.nvim": { "branch": "main", "commit": "888d6ee499d8089a3a4be4309d239d6be1c1e6c0" },
"mini.nvim": { "branch": "main", "commit": "3875a2d352fa13f9d0468c4ce26cad8a3c794507" }, "mini.icons": { "branch": "main", "commit": "397ed3807e96b59709ef3292f0a3e253d5c1dc0a" },
"neorg": { "branch": "main", "commit": "81ee90cb2d72ac43bfadb7dd276646f34c8f85be" }, "mini.nvim": { "branch": "main", "commit": "8f0969dd976e4f0cb8e2898596fa2eab18ce676b" },
"nui.nvim": { "branch": "main", "commit": "b58e2bfda5cea347c9d58b7f11cf3012c7b3953f" }, "neorg": { "branch": "main", "commit": "8fdd9b2986acfb4ce310bebfc338111793862f00" },
"nvim-cmp": { "branch": "main", "commit": "f17d9b4394027ff4442b298398dfcaab97e40c4f" }, "neorg-telescope": { "branch": "main", "commit": "7fb6ca6a632c3c095601d379a664c0c1f802dc6c" },
"nui.nvim": { "branch": "main", "commit": "f535005e6ad1016383f24e39559833759453564e" },
"nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" },
"nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" }, "nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" },
"nvim-dap": { "branch": "master", "commit": "8517126e9323e346f6a99b3b594c5a940b914dcd" }, "nvim-dap": { "branch": "master", "commit": "8df427aeba0a06c6577dc3ab82de3076964e3b8d" },
"nvim-lspconfig": { "branch": "master", "commit": "4cb925e96288a71409a86c84fd97f4434a95453e" }, "nvim-lspconfig": { "branch": "master", "commit": "ac1dfbe3b60e5e23a2cff90e3bd6a3bc88031a57" },
"nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" }, "nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
"nvim-treesitter": { "branch": "master", "commit": "8e40904e49bbad5812798eb54be8c00d77cdd301" }, "nvim-treesitter": { "branch": "master", "commit": "066fd6505377e3fd4aa219e61ce94c2b8bdb0b79" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "3e450cd85243da99dc23ebbf14f9c70e9a0c26a4" }, "nvim-treesitter-textobjects": { "branch": "master", "commit": "b0debd5c424969b4baeabdc8f54db3036c691732" },
"oil.nvim": { "branch": "master", "commit": "685cdb4ffa74473d75a1b97451f8654ceeab0f4a" },
"pathlib.nvim": { "branch": "main", "commit": "57e5598af6fe253761c1b48e0b59b7cd6699e2c1" }, "pathlib.nvim": { "branch": "main", "commit": "57e5598af6fe253761c1b48e0b59b7cd6699e2c1" },
"plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" }, "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
"rose-pine": { "branch": "main", "commit": "07a887a7bef4aacea8c7caebaf8cbf808cdc7a8e" }, "rose-pine": { "branch": "main", "commit": "491a0c77abc7ecb955c27a974091a5968232995f" },
"tabular": { "branch": "master", "commit": "12437cd1b53488e24936ec4b091c9324cafee311" }, "tabular": { "branch": "master", "commit": "12437cd1b53488e24936ec4b091c9324cafee311" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "cf48d4dfce44e0b9a2e19a008d6ec6ea6f01a83b" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" },
"telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" }, "telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
"todo-comments.nvim": { "branch": "main", "commit": "ae0a2afb47cf7395dc400e5dc4e05274bf4fb9e0" }, "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" },
"typst.vim": { "branch": "main", "commit": "50e89f481102d5c9ef6990b9f8086c0c7d64bff6" }, "typst.vim": { "branch": "main", "commit": "323539709e29a537ff39dfce6c05f175a8921504" },
"vim-fugitive": { "branch": "master", "commit": "d4877e54cef67f5af4f950935b1ade19ed6b7370" }, "undotree": { "branch": "master", "commit": "b951b87b46c34356d44aa71886aecf9dd7f5788a" },
"vim-pandoc-syntax": { "branch": "master", "commit": "16939cda184ff555938cc895cc62477c172997f9" }, "vim-fugitive": { "branch": "master", "commit": "4a745ea72fa93bb15dd077109afbb3d1809383f2" },
"vim-rhubarb": { "branch": "master", "commit": "ee69335de176d9325267b0fd2597a22901d927b1" }, "vim-pandoc-syntax": { "branch": "master", "commit": "ea3fc415784bdcbae7f0093b80070ca4ff9e44c8" },
"vim-rhubarb": { "branch": "master", "commit": "386daa2e9d98e23e27ad089afcbe5c5a903e488d" },
"vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" }, "vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" },
"vim-speeddating": { "branch": "master", "commit": "c17eb01ebf5aaf766c53bab1f6592710e5ffb796" }, "vim-speeddating": { "branch": "master", "commit": "c17eb01ebf5aaf766c53bab1f6592710e5ffb796" },
"vimtex": { "branch": "master", "commit": "251615c0624b820e2245c4ad20a70f0002e596a0" }, "vimtex": { "branch": "master", "commit": "9d9f74c3ab073b70bc943279af1aa86075de632c" },
"which-key.nvim": { "branch": "main", "commit": "68e37e12913a66b60073906f5d3f14dee0de19f2" } "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" }
} }

17
lsp/gdscript.lua Normal file
View File

@ -0,0 +1,17 @@
local port = os.getenv 'GDScript_Port' or '6005'
local cmd = vim.lsp.rpc.connect('127.0.0.1', tonumber(port))
return {
default_config = {
cmd = cmd,
filetypes = { 'gd', 'gdscript', 'gdscript3' },
root_markers = { '.git', 'project.godot' },
},
docs = {
description = [[
https://github.com/godotengine/godot
Language server for GDScript, used by Godot Engine.
]],
},
}

69
lsp/ltex_ls_plus.lua Normal file
View File

@ -0,0 +1,69 @@
local language_id_mapping = {
bib = 'bibtex',
pandoc = 'markdown',
plaintex = 'tex',
rnoweb = 'rsweave',
rst = 'restructuredtext',
tex = 'latex',
text = 'plaintext',
norg = 'neorg',
}
local function get_language_id(_, filetype)
return language_id_mapping[filetype] or filetype
end
return {
cmd = { 'ltex-ls-plus' },
filetypes = {
'markdown',
'pandoc',
'latex',
'text',
'norg',
'gitcommit',
'jj',
'jjdescription',
'rst',
'typst'
},
get_language_id = get_language_id,
single_file_support = true,
settings = {
ltex = {
enabled = {
'markdown',
'pandoc',
'latex',
'text',
'norg',
'gitcommit',
'jj',
'jjdescription',
'rst',
'typst'
},
language = "auto",
diagnosticSeverity = "information",
checkFrequency = "save",
sentenceCacheSize = 2000,
additionalRules = {
enablePickyRules = true,
motherTongue = "fr",
},
enabledRules = {
en = { "EN_CONSISTENT_APOS" },
},
disabledRules = {
fr = { "APOS_TYP", "FRENCH_WHITESPACE", "CHANGE", "ISSUE", },
en = { "DASH_RULE", "TWO_HYPHENS", "CHANGE", "ISSUE", "CHECK", "ACTUALLY", "CONSISTENT", "EN_CONSISTENT_APOS", },
},
dictionary = {
fr = { "CryptPad", "Chouhartem",
-- field names
"authors", "categories", "created", "updated", "title", "meta" },
en = { "CryptPad", },
}
}
}
}

21
lsp/rust-analyzer.lua Normal file
View File

@ -0,0 +1,21 @@
return {
cmd = { 'rust-analyzer' },
filetypes = { 'rust' },
root_markers = { '.git', 'Cargo.toml' },
settings = {
imports = {
granularity = {
group = "module",
},
prefix = "self",
},
cargo = {
buildScripts = {
enable = true,
},
},
procMacro = {
enable = true
},
}
}

View File

@ -1,5 +1,6 @@
local markdown = vim.api.nvim_create_augroup("markdown", { clear = true }) local markdown = vim.api.nvim_create_augroup("markdown", { clear = true })
local spelling = vim.api.nvim_create_augroup("spelling", { clear = true }) local spelling = vim.api.nvim_create_augroup("spelling", { clear = true })
local spell_keymap = require('spelling').spell_keymap
-- Recognize .md as pandoc -- Recognize .md as pandoc
vim.api.nvim_create_autocmd({ "BufEnter", "BufWinEnter" }, { vim.api.nvim_create_autocmd({ "BufEnter", "BufWinEnter" }, {
@ -10,8 +11,8 @@ vim.api.nvim_create_autocmd({ "BufEnter", "BufWinEnter" }, {
vim.o.commentstring = '<!--%s-->' vim.o.commentstring = '<!--%s-->'
require('luasnip').filetype_extend("pandoc", { "markdown" }) require('luasnip').filetype_extend("pandoc", { "markdown" })
vim.o.spell = true vim.o.spell = true
require('spelling').spell_keymap() spell_keymap()
vim.o.spelllang = 'en' vim.o.spelllang = 'en,fr'
vim.o.formatoptions = "qj" vim.o.formatoptions = "qj"
-- email commands: my/msy to paste the html inside the clipboard -- email commands: my/msy to paste the html inside the clipboard
vim.keymap.set('', '<LocalLeader>msy', ':w !pandoc -f markdown+emoji -t html5 -s | wl-copy --type text/html<CR><CR>', vim.keymap.set('', '<LocalLeader>msy', ':w !pandoc -f markdown+emoji -t html5 -s | wl-copy --type text/html<CR><CR>',
@ -24,20 +25,11 @@ vim.api.nvim_create_autocmd({ "BufEnter", "BufWinEnter" }, {
end end
}) })
-- French markdown files
vim.api.nvim_create_autocmd({ "BufEnter", "BufWinEnter" }, {
pattern = { "*-fr.md", },
group = markdown,
callback = function()
vim.o.spelllang = 'fr'
end
})
-- Spell shortcuts -- Spell shortcuts
vim.api.nvim_create_autocmd({ "OptionSet" }, { vim.api.nvim_create_autocmd({ "OptionSet" }, {
pattern = { "spell" }, pattern = { "spell" },
group = spelling, group = spelling,
callback = require('spelling').spell_keymap callback = spell_keymap
}) })
-- LaTeX configuration -- LaTeX configuration
@ -52,25 +44,29 @@ vim.api.nvim_create_autocmd("FileType", {
vim.g.vimtex_view_general_viewer = 'zathura' vim.g.vimtex_view_general_viewer = 'zathura'
vim.g.maplocalleader = ' ' vim.g.maplocalleader = ' '
-- Legacy shortcut from my vim-latexsuite days -- Legacy shortcut from my vim-latexsuite days
vim.api.nvim_set_keymap("n", "<Leader>ls", ":VimtexView<CR>", -- FIX: doesnt seem to work…
vim.keymap.set("n", "<Leader>ls", ":VimtexView<CR>",
{ noremap = true, silent = true, desc = 'View [L]atex Document' }) { noremap = true, silent = true, desc = 'View [L]atex Document' })
vim.o.foldmethod = 'expr' vim.o.foldmethod = 'expr'
vim.o.foldexpr = 'vimtex#fold#level(v:lnum)' vim.o.foldexpr = 'vimtex#fold#level(v:lnum)'
vim.o.foldtext = 'vimtex#fold#text()' vim.o.foldtext = 'vimtex#fold#text()'
vim.o.spell = true vim.o.spell = true
require('spelling').spell_keymap() spell_keymap()
vim.o.spelllang = "en,fr"
end, end,
}) })
-- Typst bindings -- Typst bindings + spellchecking
local typstgroup = vim.api.nvim_create_augroup("typst", { clear = true }) local typstgroup = vim.api.nvim_create_augroup("typst", { clear = true })
vim.api.nvim_create_autocmd("FileType", { vim.api.nvim_create_autocmd("FileType", {
pattern = { "typst" }, pattern = { "typst" },
group = typstgroup, group = typstgroup,
callback = function() callback = function()
vim.keymap.set('', '<LocalLeader>mp', ':TypstWatch<CR>', { noremap = true, silent = true, desc = "[M]ake [P]review" }) vim.keymap.set('', '<LocalLeader>mp', ':TypstWatch<CR>', { noremap = true, silent = true, desc = "[M]ake [P]review" })
require('spelling').spell_keymap() vim.o.spell = true
spell_keymap()
vim.o.spelllang = "fr,en"
end, end,
}) })
@ -81,7 +77,7 @@ vim.api.nvim_create_autocmd("FileType", {
group = jjgroup, group = jjgroup,
callback = function() callback = function()
vim.o.spell = true vim.o.spell = true
spell_keymap()
vim.o.spelllang = "en" vim.o.spelllang = "en"
require('spelling').spell_keymap()
end, end,
}) })

View File

@ -8,7 +8,7 @@ luasnip.config.setup {
updateevents = "TextChanged,TextChangedI", updateevents = "TextChanged,TextChangedI",
enable_autosnippets = true, enable_autosnippets = true,
} }
luasnip.filetype_extend("jj", { "gitcommit" }) luasnip.filetype_extend("jjdescription", { "gitcommit" })
local has_words_before = function() local has_words_before = function()
unpack = unpack or table.unpack unpack = unpack or table.unpack
@ -69,7 +69,6 @@ cmp.setup {
{ name = 'lazydev', { name = 'lazydev',
group_index = 0 }, group_index = 0 },
{ name = 'nvim_lsp' }, { name = 'nvim_lsp' },
{ name = 'nvim_lsp' },
{ name = 'luasnip' }, { name = 'luasnip' },
{ name = 'path' }, { name = 'path' },
}, },

View File

@ -1,5 +1,9 @@
local lspattach = vim.api.nvim_create_augroup("LspMapping", { clear = true })
-- This function gets run when an LSP connects to a particular buffer. -- This function gets run when an LSP connects to a particular buffer.
local on_attach = function(_, bufnr) vim.api.nvim_create_autocmd("LspAttach", {
group = lspattach,
callback = function(args)
-- NOTE: Remember that lua is a real programming language, and as such it is possible -- NOTE: Remember that lua is a real programming language, and as such it is possible
-- to define small helper and utility functions so you don't have to repeat yourself -- to define small helper and utility functions so you don't have to repeat yourself
-- many times. -- many times.
@ -11,7 +15,7 @@ local on_attach = function(_, bufnr)
desc = 'LSP: ' .. desc desc = 'LSP: ' .. desc
end end
vim.keymap.set('n', keys, func, { buffer = bufnr, desc = desc }) vim.keymap.set('n', keys, func, { buffer = args.buf, silent = true, desc = desc })
end end
nmap('<leader>rn', vim.lsp.buf.rename, '[R]e[n]ame') nmap('<leader>rn', vim.lsp.buf.rename, '[R]e[n]ame')
@ -31,6 +35,10 @@ local on_attach = function(_, bufnr)
nmap('gI', require('telescope.builtin').lsp_implementations, '[G]oto [I]mplementation') nmap('gI', require('telescope.builtin').lsp_implementations, '[G]oto [I]mplementation')
nmap('<leader>D', require('telescope.builtin').lsp_type_definitions, 'Type [D]efinition') nmap('<leader>D', require('telescope.builtin').lsp_type_definitions, 'Type [D]efinition')
nmap('<leader>ds', require('telescope.builtin').lsp_document_symbols, '[D]ocument [S]ymbols') nmap('<leader>ds', require('telescope.builtin').lsp_document_symbols, '[D]ocument [S]ymbols')
nmap('<leader>dd', function()
local new_config = not vim.diagnostic.config().virtual_lines
vim.diagnostic.config({ virtual_lines = new_config })
end, '[D]iagnostic toggle virtual lines')
nmap('<leader>ws', require('telescope.builtin').lsp_dynamic_workspace_symbols, '[W]orkspace [S]ymbols') nmap('<leader>ws', require('telescope.builtin').lsp_dynamic_workspace_symbols, '[W]orkspace [S]ymbols')
-- See `:help K` for why this keymap -- See `:help K` for why this keymap
@ -46,16 +54,17 @@ local on_attach = function(_, bufnr)
end, '[W]orkspace [L]ist Folders') end, '[W]orkspace [L]ist Folders')
-- Create a command `:Format` local to the LSP buffer -- Create a command `:Format` local to the LSP buffer
vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_) vim.api.nvim_buf_create_user_command(args.buf, 'Format', function(_)
vim.lsp.buf.format() vim.lsp.buf.format()
end, { desc = 'Format current buffer with LSP' }) end, { desc = 'Format current buffer with LSP' })
end end,
})
-- document existing key chains -- document existing key chains
require('which-key').add { require('which-key').add {
-- { "<leader>c", group = "[C]ode" }, -- { "<leader>c", group = "[C]ode" },
-- { "<leader>c_", hidden = true }, -- { "<leader>c_", hidden = true },
{ "<leader>d", group = "[D]ocument" }, { "<leader>d", group = "[D]ocument / [D]iagnostic" },
{ "<leader>d_", hidden = true }, { "<leader>d_", hidden = true },
{ "<leader>g", group = "[G]it" }, { "<leader>g", group = "[G]it" },
{ "<leader>g_", hidden = true }, { "<leader>g_", hidden = true },
@ -92,6 +101,7 @@ require('mason-lspconfig').setup()
-- define the property 'filetypes' to the map in question. -- define the property 'filetypes' to the map in question.
local servers = { local servers = {
clangd = {}, clangd = {},
bashls = {},
-- gopls = {}, -- gopls = {},
pyright = {}, pyright = {},
-- rust_analyzer = {}, -- rust_analyzer = {},
@ -99,37 +109,7 @@ local servers = {
eslint = {}, eslint = {},
-- html = { filetypes = { 'html', 'twig', 'hbs'} }, -- html = { filetypes = { 'html', 'twig', 'hbs'} },
texlab = {}, texlab = {},
ltex = { tinymist = {},
filetypes = {
'markdown',
'latex',
'norg',
'gitcommit',
'jj',
'rst',
'typst'
},
ltex = {
language = "auto",
diagnosticSeverity = "information",
sentenceCacheSize = 2000,
additionalRules = {
enablePickyRules = true,
motherTongue = "fr",
},
enabledRules = {
en = { "EN_CONSISTENT_APOS" },
},
disabledRules = {
fr = { "APOS_TYP", "FRENCH_WHITESPACE" },
en = { "DASH_RULE", "TWO_HYPHENS" },
},
dictionnary = {
fr = { "CryptPad", },
en = { "CryptPad", },
}
}
},
lua_ls = { lua_ls = {
Lua = { Lua = {
workspace = { checkThirdParty = false }, workspace = { checkThirdParty = false },
@ -149,51 +129,11 @@ local mason_lspconfig = require 'mason-lspconfig'
mason_lspconfig.setup { mason_lspconfig.setup {
ensure_installed = vim.tbl_keys(servers), ensure_installed = vim.tbl_keys(servers),
} automatic_installation = true,
automatic_enable = true,
mason_lspconfig.setup_handlers {
function(server_name)
require('lspconfig')[server_name].setup {
capabilities = capabilities,
on_attach = on_attach,
settings = servers[server_name],
filetypes = (servers[server_name] or {}).filetypes,
}
end,
} }
-- [[ System LSPs ]] -- [[ System LSPs ]]
local lspconfig = require('lspconfig')
servers = {
rust_analyzer = {
["rust-analyzer"] = {
imports = {
granularity = {
group = "module",
},
prefix = "self",
},
cargo = {
buildScripts = {
enable = true,
},
},
procMacro = {
enable = true
},
}
},
gdscript = {},
}
for server_name, server_settings in pairs(servers) do
lspconfig[server_name].setup {
capabilities = capabilities,
on_attach = on_attach,
settings = server_settings,
}
end
local setup_godot_dap = function() local setup_godot_dap = function()
local dap = require("dap") local dap = require("dap")
@ -216,3 +156,6 @@ local setup_godot_dap = function()
end end
setup_godot_dap() setup_godot_dap()
vim.diagnostic.config({ virtual_lines = true })
vim.lsp.enable({ "ltex_ls_plus", "rust-analyzer", "gdscript" })

View File

@ -21,18 +21,57 @@ keymap('n', 'k', "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true })
keymap('n', 'j', "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true }) keymap('n', 'j', "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true })
-- Diagnostic keymaps -- Diagnostic keymaps
keymap('n', '[d', vim.diagnostic.goto_prev, { desc = 'Go to previous diagnostic message' })
keymap('n', ']d', vim.diagnostic.goto_next, { desc = 'Go to next diagnostic message' })
keymap('n', '<leader>e', vim.diagnostic.open_float, { desc = 'Open floating diagnostic message' }) keymap('n', '<leader>e', vim.diagnostic.open_float, { desc = 'Open floating diagnostic message' })
keymap('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagnostics list' }) keymap('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagnostics list' })
keymap({ "n", "v" }, "<Leader>y", '"+y', { noremap = true, silent = true, desc = "[Y]ank to system clipboard" }) keymap({ "n", "v" }, "<Leader>y", '"+y', { noremap = true, silent = true, desc = "[Y]ank to system clipboard" })
keymap({ "n", "v" }, "<Leader>Y", '"+yg_', { noremap = true, silent = true, desc = "[Y]ank line to system clipboard" })
keymap({ "n", "v" }, "<Leader>p", '"+p', { noremap = true, silent = true, desc = "[P]ast from system clipboard" }) keymap({ "n", "v" }, "<Leader>p", '"+p', { noremap = true, silent = true, desc = "[P]ast from system clipboard" })
--[[ Folds ]]
-- z0…z9 to open folds to a certain level -- z0…z9 to open folds to a certain level
for i = 0, 9 do for i = 0, 9 do
keymap('n', 'z' .. i, ':set fdl=' .. i .. '<CR>', { noremap = true, silent = false }) keymap('n', 'z' .. i, ':set fdl=' .. i .. '<CR>', { noremap = true, silent = false })
end end
-- tab for folds management
keymap('n', '<Tab>', 'za', { noremap = true, silent = true, desc = 'Toggle open folds' })
keymap('n', '<S-Tab>', 'zA', { noremap = true, silent = true, desc = 'Toggle open all folds' })
-- in :terminal esc exits edit mode -- in :terminal esc exits edit mode
keymap('t', '<Esc>', '<C-\\><C-n>', { noremap = true, silent = true }) keymap('t', '<Esc>', '<C-\\><C-n>', { noremap = true, silent = true })
-- Markdown scratchpads
require('which-key').add({
{ "<leader>m", group = "[M]arkdown" },
{ "<leader>m_", hidden = true },
{ "<leader>sl", group = "[S]pell[Lang]" },
{ "<leader>sl_", hidden = true },
})
-- Markdown temp files
keymap('n', '<leader>mn', ':e ~/tmp/scratch.md<CR>', { desc = '[M]arkdown [N]ew', noremap = true, silent = true })
keymap('n', '<leader>me', ':e ~/tmp/scratch-fr.md<CR>',
{ desc = '[M]arkdown new Fr[e]nch', noremap = true, silent = true })
-- Spellchecking
keymap('n', '<leader>st', ':set spell!<CR>', { desc = "Toggle [S]pellcheck", silent = true, noremap = true })
keymap('n', '<leader>sle', ':set spelllang=en<CR>',
{ desc = "Set [S]pell[L]ang to [E]nglish", silent = true, noremap = true })
keymap('n', '<leader>slf', ':set spelllang=fr<CR>',
{ desc = "Set [S]pell[L]ang to [F]rench", silent = true, noremap = true })
-- Toggle hlsearch
keymap({ 'n', 'v' }, '<C-l>', ':set hlsearch!<CR>', { silent = true, noremap = true })
-- Undotree
keymap('n', 'U', vim.cmd.UndotreeToggle, { desc = "[U]ndotree toggle", silent = true, noremap = true })
-- [[ Paste ]]
keymap('i', '<C-S-v>', '<C-r>+', { noremap = true, silent = true, desc = 'Paste from "+' })
-- [[ Some standard behaviour changes ]]
-- Y is mapped to y$, remap to yg_
keymap('n', 'Y', 'yg_', { noremap = true, silent = true, desc = '[Y]ank the line' })
-- {>,<} preserve the selection
keymap('v', '>', '>gv', { noremap = true, silent = true })
keymap('v', '<', '<gv', { noremap = true, silent = true })

View File

@ -1,4 +1,4 @@
--vim.api.nvim_set_keymap('', 'à', '<Nop>', { noremap = true, silent = true }) --vim.keymap.set('', 'à', '<Nop>', { noremap = true, silent = true })
local neorgroup = vim.api.nvim_create_augroup("neorg", { clear = true }) local neorgroup = vim.api.nvim_create_augroup("neorg", { clear = true })
vim.api.nvim_create_autocmd({ "FileType" }, { vim.api.nvim_create_autocmd({ "FileType" }, {
@ -8,17 +8,47 @@ vim.api.nvim_create_autocmd({ "FileType" }, {
vim.g.maplocalleader = ' ' vim.g.maplocalleader = ' '
vim.o.conceallevel = 2 vim.o.conceallevel = 2
vim.o.foldlevelstart = 99 vim.o.foldlevelstart = 99
vim.api.nvim_set_keymap("n", "<Leader>nr", ":Neorg return<CR>", vim.keymap.set("n", "<Leader>nr", ":Neorg return<CR>",
{ noremap = true, silent = true, desc = "[N]eorg [R]eturn" }) { noremap = true, silent = true, desc = "[N]eorg [R]eturn" })
-- Neorg Telescope
vim.keymap.set("n", "<Leader>nh", "<Plug>(neorg.telescope.search_headings)",
{ noremap = true, silent = true, desc = "[N]eorg search [H]eading" })
vim.keymap.set("n", "<Leader>nb", "<Plug>(neorg.telescope.backlinks.file_backlinks)",
{ noremap = true, silent = true, desc = "[N]eorg file [B]acklinks" })
vim.keymap.set("n", "<C-l>", "<Plug>(neorg.telescope.insert_link)",
{ noremap = true, silent = true, desc = "Neorg insert [L]ink" })
-- Tasks
vim.keymap.set("n", "<LocalLeader>td", "<Plug>(neorg.qol.todo-items.todo.task-done)",
{ noremap = true, silent = true, desc = "[T]ask [D]one" })
vim.keymap.set("n", "<LocalLeader>tu", "<Plug>(neorg.qol.todo-items.todo.task-undone)",
{ noremap = true, silent = true, desc = "[T]ask [U]ndone" })
vim.keymap.set("n", "<LocalLeader>tp", "<Plug>(neorg.qol.todo-items.todo.task-pending)",
{ noremap = true, silent = true, desc = "[T]ask [P]ending" })
vim.keymap.set("n", "<LocalLeader>th", "<Plug>(neorg.qol.todo-items.todo.task-on_hold)",
{ noremap = true, silent = true, desc = "[T]ask on [H]old" })
vim.keymap.set("n", "<LocalLeader>tc", "<Plug>(neorg.qol.todo-items.todo.task-cancelled)",
{ noremap = true, silent = true, desc = "[T]ask on [C]ancelled" })
vim.keymap.set("n", "<LocalLeader>tr", "<Plug>(neorg.qol.todo-items.todo.task-recurring)",
{ noremap = true, silent = true, desc = "[T]ask on [R]ecurring" })
vim.keymap.set("n", "<LocalLeader>ti", "<Plug>(neorg.qol.todo-items.todo.task-important)",
{ noremap = true, silent = true, desc = "[T]ask on [I]mportant" })
vim.keymap.set("n", "gO", ":Neorg toc<CR>",
{ noremap = true, silent = true, desc = "[O]pen toc" })
end, end,
}) })
local function live_grep_neorg()
local neorg_root = '~/Sync/neorg' -- TODO: get it from neorg
require('telescope.builtin').live_grep {
cwd = neorg_root,
}
end
-- document existing key chains -- document existing key chains
require('which-key').add { require('which-key').add {
{ "<leader>l", group = "neorg [L]ist" }, { "<leader>l", group = "neorg [L]ist" },
{ "<leader>l_", hidden = true }, { "<leader>l_", hidden = true },
{ "<leader>m", group = "neorg [M]ode" },
{ "<leader>m_", hidden = true },
{ "<leader>t", group = "neorg [T]asks" }, { "<leader>t", group = "neorg [T]asks" },
{ "<leader>n", group = "[N]eorg" }, { "<leader>n", group = "[N]eorg" },
{ "<leader>n_", hidden = true }, { "<leader>n_", hidden = true },
@ -26,37 +56,29 @@ require('which-key').add {
{ "<leader>ne_", hidden = true }, { "<leader>ne_", hidden = true },
} }
vim.api.nvim_set_keymap("n", "<Leader>ni", ":Neorg index<CR>", vim.keymap.set("n", "<Leader>ni", ":Neorg index<CR>",
{ noremap = true, silent = true, desc = "[N]eorg [I]ndex" }) { noremap = true, silent = true, desc = "[N]eorg [I]ndex" })
vim.api.nvim_set_keymap("n", "<Leader>nm", ":Neorg inject-metadata<CR>", vim.keymap.set("n", "<Leader>nm", ":Neorg inject-metadata<CR>",
{ noremap = true, silent = true, desc = "[N]eorg insert [M]etadata" }) { noremap = true, silent = true, desc = "[N]eorg insert [M]etadata" })
vim.api.nvim_set_keymap("n", "<Leader>nj", ":Neorg journal toc open<CR>", vim.keymap.set("n", "<Leader>nj", ":Neorg journal toc open<CR>",
{ noremap = true, silent = true, desc = "[N]eorg [J]ournal" }) { noremap = true, silent = true, desc = "[N]eorg [J]ournal" })
vim.api.nvim_set_keymap("n", "<Leader>nt", ":Neorg journal today<CR>", vim.keymap.set("n", "<Leader>nt", ":Neorg journal today<CR>",
{ noremap = true, silent = true, desc = "[N]eorg [T]oday" }) { noremap = true, silent = true, desc = "[N]eorg [T]oday" })
vim.api.nvim_set_keymap("n", "<Leader>ns", ":Neorg journal tomorrow<CR>", vim.keymap.set("n", "<Leader>ns", ":Neorg journal tomorrow<CR>",
{ noremap = true, silent = true, desc = "Neorg tomorrow" }) { noremap = true, silent = true, desc = "Neorg tomorrow" })
vim.api.nvim_set_keymap("n", "<Leader>ny", ":Neorg journal yesterday<CR>", vim.keymap.set("n", "<Leader>ny", ":Neorg journal yesterday<CR>",
{ noremap = true, silent = true, desc = "[N]eorg [Y]esterday" }) { noremap = true, silent = true, desc = "[N]eorg [Y]esterday" })
vim.api.nvim_set_keymap("n", "<Leader>neo", ":e /tmp/neorg-export.md<CR>", vim.keymap.set("n", "<Leader>neo", ":e /tmp/neorg-export.md<CR>",
{ noremap = true, silent = true, desc = "[N]eorg [E]xport [O]pen" }) { noremap = true, silent = true, desc = "[N]eorg [E]xport [O]pen" })
vim.api.nvim_set_keymap("n", "<Leader>nee", ":Neorg export to-file /tmp/neorg-export.md<CR>", vim.keymap.set("n", "<Leader>nev", ":bo vsp /tmp/neorg-export.md<CR>",
{ noremap = true, silent = true, desc = "[N]eorg [E]xport [V]ertical open" })
vim.keymap.set("n", "<Leader>nee", ":Neorg export to-file /tmp/neorg-export.md<CR>",
{ noremap = true, silent = true, desc = "[N]eorg [E]xport Predefined" }) { noremap = true, silent = true, desc = "[N]eorg [E]xport Predefined" })
vim.api.nvim_set_keymap("n", "<Leader>nef", ":Neorg export to-file ", vim.keymap.set("n", "<Leader>nef", ":Neorg export to-file ",
{ noremap = true, silent = true, desc = "[N]eorg [E]xport [F]ile" }) { noremap = true, silent = true, desc = "[N]eorg [E]xport [F]ile" })
vim.keymap.set("n", "<Leader>nl", "<Plug>(neorg.telescope.find_linkable)",
-- Tasks { noremap = true, silent = true, desc = "[N]eorg find [L]inkable" })
vim.api.nvim_set_keymap("n", "<LocalLeader>td", "<Plug>(neorg.qol.todo-items.todo.task-done)", vim.keymap.set("n", "<Leader>nf", "<Plug>(neorg.telescope.find_norg_files)",
{ noremap = true, silent = true, desc = "[T]ask [D]one" }) { noremap = true, silent = true, desc = "[N]eorg find [F]ile" })
vim.api.nvim_set_keymap("n", "<LocalLeader>tu", "<Plug>(neorg.qol.todo-items.todo.task-undone)", vim.keymap.set("n", "<Leader>n/", live_grep_neorg,
{ noremap = true, silent = true, desc = "[T]ask [U]ndone" }) { noremap = true, silent = true, desc = "[N]eorg Live Grep" })
vim.api.nvim_set_keymap("n", "<LocalLeader>tp", "<Plug>(neorg.qol.todo-items.todo.task-pending)",
{ noremap = true, silent = true, desc = "[T]ask [P]ending" })
vim.api.nvim_set_keymap("n", "<LocalLeader>th", "<Plug>(neorg.qol.todo-items.todo.task-on_hold)",
{ noremap = true, silent = true, desc = "[T]ask on [H]old" })
vim.api.nvim_set_keymap("n", "<LocalLeader>tc", "<Plug>(neorg.qol.todo-items.todo.task-cancelled)",
{ noremap = true, silent = true, desc = "[T]ask on [C]ancelled" })
vim.api.nvim_set_keymap("n", "<LocalLeader>tr", "<Plug>(neorg.qol.todo-items.todo.task-recurring)",
{ noremap = true, silent = true, desc = "[T]ask on [R]ecurring" })
vim.api.nvim_set_keymap("n", "<LocalLeader>ti", "<Plug>(neorg.qol.todo-items.todo.task-important)",
{ noremap = true, silent = true, desc = "[T]ask on [I]mportant" })

View File

@ -161,25 +161,8 @@ require('lazy').setup({
end, end,
}, },
{
-- Set lualine as statusline -- Set lualine as statusline
'nvim-lualine/lualine.nvim', 'nvim-lualine/lualine.nvim',
-- See `:help lualine.txt`
opts = {
options = {
icons_enabled = true,
theme = 'rose-pine',
component_separators = '|',
section_separators = '',
},
symbols = {
error = "",
warn = "",
info = "",
hint = "",
}
},
},
{ {
-- Add indentation guides even on blank lines -- Add indentation guides even on blank lines
@ -280,13 +263,19 @@ require('lazy').setup({
}, },
{ {
"nvim-neorg/neorg", "nvim-neorg/neorg",
dependencies = { "luarocks.nvim" }, dependencies = { "luarocks.nvim", { "nvim-lua/plenary.nvim" }, { "nvim-neorg/neorg-telescope" } },
lazy = false, -- Disable lazy loading as some `lazy.nvim` distributions set `lazy = true` by default lazy = false, -- Disable lazy loading as some `lazy.nvim` distributions set `lazy = true` by default
version = "*", -- Pin Neorg to the latest stable release -- version = "*", -- Pin Neorg to the latest stable release
config = function() config = function()
require("neorg").setup { require("neorg").setup {
load = { load = {
["core.defaults"] = {}, ["core.defaults"] = {},
["core.keybinds"] = {},
["core.completion"] = {
config = {
engine = "nvim-cmp",
},
},
["core.concealer"] = { ["core.concealer"] = {
config = { config = {
icon_preset = "diamond", icon_preset = "diamond",
@ -311,6 +300,7 @@ require('lazy').setup({
type = "empty", type = "empty",
}, },
}, },
["core.integrations.telescope"] = {},
} }
} }
end, end,
@ -324,11 +314,26 @@ require('lazy').setup({
"iamcco/markdown-preview.nvim", "iamcco/markdown-preview.nvim",
cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" }, cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
ft = { "markdown", "pandoc" }, ft = { "markdown", "pandoc" },
build = function() vim.fn["mkdp#util#install"]() end, -- build = function() vim.fn["mkdp#util#install"]() end,
build = "cd app && npm install && git restore .",
}, },
{ {
'kaarmu/typst.vim', 'kaarmu/typst.vim',
ft = 'typst', ft = 'typst',
lazy = false, lazy = false,
} },
-- oil.nvim
{
'stevearc/oil.nvim',
---@module 'oil'
---@type oil.SetupOpts
opts = {},
-- Optional dependencies
dependencies = { { "echasnovski/mini.icons", opts = {} } },
-- dependencies = { "nvim-tree/nvim-web-devicons" }, -- use if you prefer nvim-web-devicons
-- Lazy loading is not recommended because it is very tricky to make it work correctly in all situations.
lazy = false,
},
-- undotree
'mbbill/undotree',
}, {}) }, {})

48
lua/statusline.lua Normal file
View File

@ -0,0 +1,48 @@
-- Character, word and line counts
-- https://www.reddit.com/r/neovim/comments/1130kh5/comment/j8navg6/
local function counters()
local isVisualMode = vim.fn.mode():find("[Vv]")
if not isVisualMode then return "" end
local starts = vim.fn.line("v")
local ends = vim.fn.line(".")
local lines = starts <= ends and ends - starts + 1 or starts - ends + 1
local wordcount = vim.fn.wordcount()
return tostring(wordcount.visual_words) ..
"W " .. tostring(wordcount.visual_chars) .. "C " .. tostring(lines) .. "L"
end
-- See `:help lualine.txt`
require('lualine').setup({
options = {
icons_enabled = true,
theme = 'rose-pine',
component_separators = '|',
section_separators = '',
},
sections = {
lualine_c = {
{
'filename',
path = 1,
}
},
lualine_y = {
{ counters },
'progress'
}
},
inactive_sections = {
lualine_c = {
{
'filename',
path = 1,
}
},
},
symbols = {
error = "",
warn = "",
info = "",
hint = "",
}
})

View File

@ -77,6 +77,7 @@ vim.keymap.set('n', '<leader>sG', ':LiveGrepGitRoot<cr>', { desc = '[S]earch by
vim.keymap.set('n', '<leader>sd', require('telescope.builtin').diagnostics, { desc = '[S]earch [D]iagnostics' }) vim.keymap.set('n', '<leader>sd', require('telescope.builtin').diagnostics, { desc = '[S]earch [D]iagnostics' })
vim.keymap.set('n', '<leader>sr', require('telescope.builtin').resume, { desc = '[S]earch [R]esume' }) vim.keymap.set('n', '<leader>sr', require('telescope.builtin').resume, { desc = '[S]earch [R]esume' })
vim.keymap.set('n', '<leader>sb', require('telescope.builtin').lsp_document_symbols, { desc = '[S]earch Sym[b]bol' }) vim.keymap.set('n', '<leader>sb', require('telescope.builtin').lsp_document_symbols, { desc = '[S]earch Sym[b]bol' })
vim.keymap.set('n', '<leader>sB', require('telescope.builtin').lsp_workspace_symbols, { desc = '[S]earch Sym[b]bol in workspace' })
-- vim telescope -- vim telescope
vim.keymap.set('n', '<leader>gc', require('telescope.builtin').git_commits, { desc = '[G]it [C]ommits' }) vim.keymap.set('n', '<leader>gc', require('telescope.builtin').git_commits, { desc = '[G]it [C]ommits' })

View File

@ -70,5 +70,6 @@ vim.defer_fn(function()
}, },
}, },
}, },
modules = {},
} }
end, 0) end, 0)

32
luasnippets/norg.lua Normal file
View File

@ -0,0 +1,32 @@
local ls = require("luasnip")
local s = ls.snippet
local sn = ls.snippet_node
local t = ls.text_node
local i = ls.insert_node
local f = ls.function_node
local d = ls.dynamic_node
local fmt = require("luasnip.extras.fmt").fmt
local fmta = require("luasnip.extras.fmt").fmta
local rep = require("luasnip.extras").rep
return {
-- Pull Request
s({
trig = "pr", dscr = "cryptpad pull request"
},
fmta("{https://github.com/cryptpad/cryptpad/pull/<>}[#<>]", {
i(1, "number"),
rep(1),
})
),
-- Issue
s({
trig = "issue", dscr = "cryptpad issue request"
},
fmta("{https://github.com/cryptpad/cryptpad/issues/<>}[#<>]", {
i(1, "number"),
rep(1),
})
),
}

View File

@ -7,9 +7,9 @@ consistent files inside `lua/` and personal customizations have been applied.
The process to design this configuration and some thoughts can be found The process to design this configuration and some thoughts can be found
[here](https://blog.epheme.re/software/nvim-kickstart.html). [here](https://blog.epheme.re/software/nvim-kickstart.html).
Note that if the global principles remain true, the blog post dates from 2023, Note that if the global principles remain true, the blog post dates from
and things may have changed a bit since then. Just use it as a reference for my December 2023, and things may have changed a bit since then. Just use it as a
rationals. reference for my rationals.
## Testing it ## Testing it
@ -22,3 +22,11 @@ For instance, you can create clone this repository inside
```sh ```sh
export NVIM_APPNAME="$HOME/.config/kicknvim" export NVIM_APPNAME="$HOME/.config/kicknvim"
``` ```
## LSP dependencies
This configuration requires some LSP servers to be installed on your machine
(usually because they are unavailable in `mason`). These packages are:
- `rust-analyzer`
- `ltex-ls-plus`