aboutsummaryrefslogtreecommitdiff
path: root/dot_config/nvim/doc.md
diff options
context:
space:
mode:
Diffstat (limited to 'dot_config/nvim/doc.md')
-rw-r--r--dot_config/nvim/doc.md67
1 files changed, 67 insertions, 0 deletions
diff --git a/dot_config/nvim/doc.md b/dot_config/nvim/doc.md
new file mode 100644
index 0000000..5e1456a
--- /dev/null
+++ b/dot_config/nvim/doc.md
@@ -0,0 +1,67 @@
+---
+title: Kickstart docs
+author: Thomas Wells
+---
+
+# Purpose
+
+Although the `kickstart.nvim` documentation will not be as useful outside of its original context, I am moving it here in the interest of maintaing a cleaner `init.lua`.
+
+# Lazy
+Use `opts = {}` to automatically pass options to a plugin's `setup()` function, forcing the plugin to be loaded.
+Alternatively, use `config = function() ... end` for full control over the configuration.
+Therefore, if you prefer to call `setup` explicitly, use:
+
+```lua
+{
+ 'lewis6991/gitsigns.nvim',
+ config = function()
+ require('gitsigns').setup({
+ -- Your gitsigns configuration here
+ })
+ end,
+}
+```
+
+Plugins can specify dependencies.
+The dependencies are proper plugin specifications as well - anything you do for a plugin at the top level, you can do for a dependency.
+Use the `dependencies` key to specify the dependencies of a particular plugin
+
+# Telescope
+Telescope is a fuzzy finder that comes with a lot of different things that
+it can fuzzy find! It's more than just a "file finder", it can search
+many different aspects of Neovim, your workspace, LSP, and more!
+
+The easiest way to learn Telescope is: `:Telescope help_tags`.
+After running this command, a window will open up and you're able to type in the prompt window.
+You'll see a list of `help_tags` options and a corresponding preview of the help.
+
+Two important keymaps to use while in Telescope are:
+
+- Insert mode: `<c-/>`
+- Normal mode: `?`
+
+More setup info can be found in `:help telescope.setup()`
+
+# LSP
+Brief aside: **What is LSP?**
+
+LSP is an initialism you've probably heard, but might not understand.
+LSP stands for Language Server Protocol.
+It's a protocol that helps editors and language tooling communicate in a standardized fashion.
+
+In general, you have a "server" which is some tool built to understand a particular language (such as `gopls`, `lua_ls`, `rust_analyzer`, etc.).
+These Language Servers (sometimes called LSP servers, but that's kind of like ATM Machine) are standalone processes that communicate with some "client" - in this case, Neovim!
+
+LSP provides Neovim with features like:
+
+ - Go to definition
+ - Find references
+ - Autocompletion
+ - Symbol Search
+ - and more!
+
+Thus, Language Servers are external tools that must be installed separately from Neovim.
+This is where `mason` and related plugins come into play.
+If you're wondering about lsp vs treesitter, you can check out the wonderfully and elegantly composed help section, `:help lsp-vs-treesitter`
+