diff --git a/.prettierrc.toml b/.prettierrc.toml new file mode 100644 index 0000000..c5a11fc --- /dev/null +++ b/.prettierrc.toml @@ -0,0 +1,2 @@ +proseWrap = "always" +printWidth = 80 diff --git a/README.md b/README.md index fcbe3d6..0f09014 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,32 @@ -# 💤 Neovim Dotfiles +# Neovim Dotfiles -My Neovim configuration files, built on top of [LazyVim](https://github.com/LazyVim/LazyVim). Makes Neovim an actual usable IDE. +My Neovim configuration files, built on top of +[LazyVim](https://github.com/LazyVim/LazyVim). Makes Neovim an actual usable +IDE. -The main goal of this setup is to reach somewhat feature parity with VSCode's Intellisense features (in other words, to be _at least_ as productive as in VSCode). +The main goal of this setup is to reach somewhat feature parity with VSCode's +Intellisense features (in other words, to be _at least_ as productive as in +VSCode). Since the majority of VS Code's "IntelliSense" features are really just +its wrapper around an LSP, almost all useful VS Code features (except maybe the +debugger) are also available in Neovim. + +You probably shouldn't use these dotfiles, because you'd likely be better off +just installing LazyVim yourself and setting things up how you like. This is +mainly here as a personal backup, and to leave notes for my own use. But, I'll +try to document as much as I can, anyways. ## Installation -Ensure you have the latest version of Neovim installed, and remove or backup your existing settings. Install `tree-sitter-cli` with either `cargo` or `npm`, and ensure `npm` and `tree-sitter-cli` are on your `PATH`. +Ensure you have the latest version of Neovim installed, and remove or backup +your existing settings. Install `tree-sitter-cli` with either `cargo` or `npm`, +and ensure `npm` and `tree-sitter-cli` are on your `PATH`. ```sh +# remove it rm -rf ~/.config/nvim -mv ~/.nvim ~/.nvim.bak + +# or back it up, if you have settings you don't want to lose. +mv ~/.config/nvim ~/.config/nvim.bak # with npm (or pnpm, bun, yarn) npm install --global tree-sitter-cli @@ -19,33 +35,57 @@ npm install --global tree-sitter-cli cargo install tree-sitter-cli ``` -Then, clone this repository into where Neovim is expecting configuration files (usually `~/.config/nvim`). +Then, clone this repository into where Neovim is expecting configuration files +(usually `~/.config/nvim`). -```sh +```bash git clone https://github.com/couscousdude/neovim-dots ~/.config/nvim ``` -Launch Neovim and it should automatically setup `lazy.nvim` and install all plugins. +Launch Neovim and it should automatically setup `lazy.nvim` and install all +plugins. -You can install LSPs for new languages by running `:MasonInstall ` and Treesitter parsers with `:TSInstall `. +You can install LSPs for new languages by running `:MasonInstall ` and +Treesitter parsers with `:TSInstall `. -Set up Copilot with `:Copilot setup` and follow the instructions (or remove it by going to the LazyVim "Extras" section and uninstalling it. You can replace it with Codeium or Tab9). +Set up Copilot with `:Copilot setup` and follow the instructions (or remove it +by going to the LazyVim "Extras" section and uninstalling it. You can replace it +with Codeium or Tab9). -Set up Wakatime with `:WakaTimeApiKey` (or uninstall it by removing its entry from `nvim/lua/plugins/extras.lua`). +Set up Wakatime with `:WakaTimeApiKey` (or uninstall it by removing its entry +from `nvim/lua/plugins/extras.lua`). -Check the [LazyVim documentation](https://github.com/LazyVim/LazyVim) for more information on the rest of the features and plugins. +Check the [LazyVim documentation](https://github.com/LazyVim/LazyVim) for more +information on the rest of the features and plugins. + +## Notes + +- Trouble v3 seems to be breaking in specific situations (esp. in Svelte) when + used with the lua-line. I disabled it for now because statusline is more + important and regular trouble.nvim seems to work fine. Maybe upgrading to + neovim 0.10.x will help. ## Non-exhaustive list of changes on top of LazyVim - More LSP configuration - - `typescript-tools.nvim` to replace `typescript-language-server` from Mason, to reduce crashes and improve performance. + - `typescript-tools.nvim` to replace `typescript-language-server` from Mason, + to reduce crashes and improve performance. - `tailwind-fold` to fold long CSS classnames - `vim-wakatime` to track time spent coding. -- Made background transparent and increased some colors to increase contrast (line numbers, etc). +- Made background transparent and increased some colors to increase contrast + (line numbers, etc). - Add `presence.nvim` for Discord Rich Presence integration. -- Add Arch logo to the dashboard (page that initially opens if you type `nvim`) (did I mention I use Arch btw). +- Add Arch logo to the dashboard (page that initially opens if you type `nvim`) + (did I mention I use Arch btw). - Fix various annoyances with plugins: - - Disable duplicate TS error reports from `tsserver` and `typescript-language-server`. - - Rebind window resizing to use the `` key instead of `` because it conflicts with macOS window change shortcuts. - - Configure notification plugin (`noice.nvim`) to suppress "No information available" when triggering hover (this is to prevent tailwind-language-server from showing this message on every hover when editing files containing both Tailwind and other languages with LSPs, such as `.svelte`). + - Disable duplicate TS error reports from `tsserver` and + `typescript-language-server`. + - Rebind window resizing to use the `` key instead of `` because it + conflicts with macOS window change shortcuts. + - Configure notification plugin (`noice.nvim`) to suppress "No information + available" when triggering hover (this is to prevent + tailwind-language-server from showing this message on every hover when + editing files containing both Tailwind and other languages with LSPs, such + as `.svelte`). - Move `neo-tree` to the right side of the screen by default (life changing). +- Add TeX support. diff --git a/lazy-lock.json b/lazy-lock.json index 4cf72cc..9b0e2eb 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,17 +1,17 @@ { "LazyVim": { "branch": "main", "commit": "9b4675ddde38fdae09978bd7dbdba83ec91f4d80" }, - "LuaSnip": { "branch": "master", "commit": "72eea98b1900013e0cb214f29b898c8d91564930" }, - "SchemaStore.nvim": { "branch": "main", "commit": "a0dc19e5f9aaebdf2866fcbbf70809da53a4c62b" }, + "LuaSnip": { "branch": "master", "commit": "8f3d3465ba5c7ade0a8adb41eca5736f291a3fa8" }, + "SchemaStore.nvim": { "branch": "main", "commit": "d346238565f2028eafee39283ae026357d5642d6" }, "bufferline.nvim": { "branch": "main", "commit": "73540cb95f8d95aa1af3ed57713c6720c78af915" }, "catppuccin": { "branch": "main", "commit": "a1439ad7c584efb3d0ce14ccb835967f030450fe" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, "cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" }, "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, - "conform.nvim": { "branch": "master", "commit": "475c096d24562cf1fa992731869e17ea6d75d2d9" }, + "conform.nvim": { "branch": "master", "commit": "4660e534bf7678ee0f85879aa75fdcb6855612c2" }, "copilot-cmp": { "branch": "master", "commit": "72fbaa03695779f8349be3ac54fa8bd77eed3ee3" }, "copilot.lua": { "branch": "master", "commit": "f7612f5af4a7d7615babf43ab1e67a2d790c13a6" }, - "crates.nvim": { "branch": "main", "commit": "786d12a70c9b91fa2d0d102bb07df02be0db31a1" }, + "crates.nvim": { "branch": "main", "commit": "f00e11e8282b94f2a2e938d32712c99f0e0bdeb4" }, "dashboard-nvim": { "branch": "master", "commit": "6d06924b562de6f0bb136edf1bf549afbf6b7d00" }, "dressing.nvim": { "branch": "master", "commit": "5162edb1442a729a885c45455a07e9a89058be2f" }, "flash.nvim": { "branch": "main", "commit": "48817af25f51c0590653bbc290866e4890fe1cbe" }, @@ -32,7 +32,7 @@ "mini.pairs": { "branch": "main", "commit": "04f58f2545ed80ac3b52dd4826e93f33e15b2af6" }, "mini.surround": { "branch": "main", "commit": "a00d69be09e3fe27dfa9e5b0298410d0e148e3e2" }, "neo-tree.nvim": { "branch": "v3.x", "commit": "7aad1bf3f6b849cbf108e02c55ad4d701cb4d33a" }, - "neoconf.nvim": { "branch": "main", "commit": "d4a353c4275046136a4ae84454898a944d01a868" }, + "neoconf.nvim": { "branch": "main", "commit": "bc99367aedf1fd5524f17eaaadc98d6329047075" }, "neodev.nvim": { "branch": "main", "commit": "ce9a2e8eaba5649b553529c5498acb43a6c317cd" }, "noice.nvim": { "branch": "main", "commit": "0cbe3f88d038320bdbda3c4c5c95f43a13c3aa12" }, "nui.nvim": { "branch": "main", "commit": "cbd2668414331c10039278f558630ed19b93e69b" }, @@ -41,8 +41,8 @@ "nvim-lspconfig": { "branch": "master", "commit": "cfa386fc4027e847156ee16141ea1f4c0bc2f0a4" }, "nvim-notify": { "branch": "master", "commit": "5371f4bfc1f6d3adf4fe9d62cd3a9d44356bfd15" }, "nvim-spectre": { "branch": "master", "commit": "026394a8458d62c6b7b305c076ce675420dbaa4c" }, - "nvim-treesitter": { "branch": "master", "commit": "dc71d94fe223763d28ab49ee3de4fd7081a84891" }, - "nvim-treesitter-context": { "branch": "master", "commit": "ba4289ad345ececd335a9cdd7b9616fd0bb6be92" }, + "nvim-treesitter": { "branch": "master", "commit": "b04ccbd0e041bb05f3eef271124da02497d9d10c" }, + "nvim-treesitter-context": { "branch": "master", "commit": "4fe0a54e86859744968e1a5c7867b49c86855774" }, "nvim-treesitter-textobjects": { "branch": "master", "commit": "23b820146956b3b681c19e10d3a8bc0cbd9a1d4c" }, "nvim-ts-autotag": { "branch": "main", "commit": "531f48334c422222aebc888fd36e7d109cb354cd" }, "nvim-ts-context-commentstring": { "branch": "main", "commit": "a6382f744f584bbf71d0a563af789af7190aabda" }, @@ -64,7 +64,7 @@ "vim-illuminate": { "branch": "master", "commit": "e522e0dd742a83506db0a72e1ced68c9c130f185" }, "vim-startuptime": { "branch": "master", "commit": "ac2cccb5be617672add1f4f3c0a55ce99ba34e01" }, "vim-wakatime": { "branch": "master", "commit": "5d11a253dd1ecabd4612a885175216032d814300" }, - "vimtex": { "branch": "master", "commit": "1b4df785a530b7704d081972e438b5678a6d111c" }, + "vimtex": { "branch": "master", "commit": "6c01660a99c0cc0906b39094f4a2d086b28fa995" }, "which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" }, "yanky.nvim": { "branch": "main", "commit": "7c5cbf0122ff2dfbb6a92f14885894f65949cc8b" } } \ No newline at end of file diff --git a/lua/plugins/extras.lua b/lua/plugins/extras.lua index c7eb8f0..a0509a5 100644 --- a/lua/plugins/extras.lua +++ b/lua/plugins/extras.lua @@ -7,6 +7,7 @@ return { lazy=false, opts = { workspace_text = "The One True Text Editor", + editing_text = "Hacking %s", }, }, { 'wakatime/vim-wakatime', lazy = false },