update(docs): docs are have more details and are separated into modules.

This commit is contained in:
juancwu 2022-12-18 18:46:51 -05:00
commit 62582c94d7
No known key found for this signature in database
5 changed files with 101 additions and 136 deletions

View file

@ -1,10 +1,10 @@
# Overview # Overview
These are my configuration files for my development environment using Fish (shell) and NeoVim. One place to keep all my general configurations to setup my development environment on the terminal.
There are different branches for each OS. The configurations in this repository are highly inspired by and referenced from:
- [craftzdog](https://github.com/craftzdog/dotfiles-public)
The configurations in this repository are highly inspired by and referenced from [craftzdog](https://github.com/craftzdog/dotfiles-public). - [ThePrimeagen](https://github.com/ThePrimeagen/init.lua)
# Terminal Colourscheme # Terminal Colourscheme
@ -46,20 +46,24 @@ The configurations in this repository are highly inspired by and referenced from
- Cursor: #839496 - Cursor: #839496
- Cursor text: #073642 - Cursor text: #073642
# Instructions # Instructions Based on OS
These are set of instructions to setup the terminal (fish and neovim).
- [Linux](docs/linux.md) - [Linux](docs/linux.md)
- [Mac](docs/macos.md) - [Mac](docs/macos.md)
# 1Password Configuration SSH-Agent # Other Setups
## 1Password Configuration SSH-Agent
Use 1Password SSH-Agent for SSH authentication and commit signing. Use 1Password SSH-Agent for SSH authentication and commit signing.
## Windows & WSL2 ### Windows & WSL2
We need to create a bridge with named pipes between Windows and WSL2 so that WSL2 can use 1Password SSH-Agent. We need to create a bridge with named pipes between Windows and WSL2 so that WSL2 can use 1Password SSH-Agent.
### Steps #### Steps
1. Enable Windows Hello in Settings 1. Enable Windows Hello in Settings
2. Install [npiperelay.exe](https://1password.community/home/leaving?allowTrusted=1&target=https%3A%2F%2Fgithub.com%2Fjstarks%2Fnpiperelay) 2. Install [npiperelay.exe](https://1password.community/home/leaving?allowTrusted=1&target=https%3A%2F%2Fgithub.com%2Fjstarks%2Fnpiperelay)
@ -98,18 +102,18 @@ end
5. Restart terminal. 5. Restart terminal.
6. Test with `ssh-add -l`. This should output the 1Password SSH keys. 6. Test with `ssh-add -l`. This should output the 1Password SSH keys.
## MacOS ### MacOS
MacOS setup is pretty straight forward. MacOS setup is pretty straight forward.
### Steps #### Steps
1. Open the settings page of 1Password. 1. Open the settings page of 1Password.
2. Go to the `Developer`. 2. Go to the `Developer`.
3. Turn on `Use the SSH agent` option. 3. Turn on `Use the SSH agent` option.
4. Configure singed commits 4. Configure singed commits
## Configure Signed Commits ### Configure Signed Commits
This will make each commit show as `verified` on GitHub. This will make each commit show as `verified` on GitHub.

12
docs/fish.md Normal file
View file

@ -0,0 +1,12 @@
# Fish Shell Customization
This section defines a list of plugins used to customize fish.
- [Tide](https://github.com/IlanCosman/tide) - The ultimate Fish prompt.
- [Fisher](https://github.com/jorgebucaran/fisher) - Manage functions, completions, bindings, and snippets from the command line.
- [Exa](https://the.exa.website/) - New gen `ls`.
- [Z](https://github.com/jethrokuan/z) - tracks the directories you visit and jump between them.
- [Peco](https://github.com/peco/peco) - Filterting tool.
- [Llama](https://github.com/antonmedv/llama) - Terminal file manager.
- [ghq](https://github.com/x-motemen/ghq) - Manage remote repository clones.

View file

@ -1,4 +1,4 @@
# Setup # Linux Setup
Follow the steps below to configure the dotfiles on Ubuntu. Follow the steps below to configure the dotfiles on Ubuntu.
@ -22,6 +22,8 @@ Verify fish has been installed.
which fish which fish
``` ```
Here is the list of [Fish customizations](/fish.md).
#### Make fish the default shell #### Make fish the default shell
```bash ```bash
@ -42,75 +44,29 @@ If not, visit [https://minbrowser.org/](https://minbrowser.org/).
### 3. Install Neovim ### 3. Install Neovim
Neovim is an extension of vim that supports Lua scripting for configurations and plugins. Install `v0.9.0` for all the plugins to work. The debian package can be download with this link: (This is not a stable release but the latest `v0.8.1` is showing problems with treesitter)
```fish - https://github.com/neovim/neovim/releases/download/nightly/nvim-linux64.deb
sudo apt install neovim
After downloading the package, use the command below to install:
```bash
sudo apt install ./nvim-linux64.deb
``` ```
After installing neovim, we want to install all the language servers needed and formatters before installing plugins to avoid any problems. > Note: This installation assumes that you are using Ubuntu.
--- ---
#### Language Servers #### Install Plugin Manager For Neovim
For information on specific configuration head to [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md) We are using [packer](https://github.com/wbthomason/packer.nvim) as the plugin manager.
**Typescript**: [https://github.com/typescript-language-server/typescript-language-server](https://github.com/typescript-language-server/typescript-language-server) Copy the code below to install:
**Golang**: [https://github.com/golang/tools/tree/master/gopls](https://github.com/golang/tools/tree/master/gopls) ```bash
git clone --depth 1 https://github.com/wbthomason/packer.nvim\
~/.local/share/nvim/site/pack/packer/start/packer.nvim
```
**Clangd**: [https://clangd.llvm.org/installation.html](https://clangd.llvm.org/installation.html) Now it is time to [setup Neovim](/nvim.md).
**Pyright**: [https://github.com/microsoft/pyright](https://github.com/microsoft/pyright)
**Tailwindcss**: [https://github.com/tailwindlabs/tailwindcss-intellisense](https://github.com/tailwindlabs/tailwindcss-intellisense)
---
#### Formatter
---
**Prettierd**: [https://github.com/fsouza/prettierd](https://github.com/fsouza/prettierd)
---
#### Neovim plugins
- [wbthomason/packer.nvim](https://github.com/wbthomason/packer.nvim) - Plugin Manager for Neovim >= 5.0
- [nvim-lualine/lualine.nvim](https://github.com/nvim-lualine/lualine.nvim) - A blazing fast and easy to configure Neovim statusline written in Lua.
- [tjdevries/colorbuddy.nvim](https://github.com/tjdevries/colorbuddy.nvim) - A colourscheme helper for Neovim.
- [svrana/neosolarized.nvim](https://github.com/svrana/neosolarized.nvim) - A truecolour, solarized dark colourscheme using.
- [neovim/nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - Configurations for Neovim builtin LSP server.
- [onsails/lspkind-nvim](https://github.com/onsails/lspkind.nvim) - vscode-like pictograms.
- [hrsh7th/nvim-cmp](https://github.com/hrsh7th/nvim-cmp) - A completion engine plugin for neovim written in Lua.
- [hrsh7th/cmp-buffer](https://github.com/hrsh7th/cmp-buffer) - nvim-cmp source for buffer words.
- hrsh7th/cmp-nvim-lsp - No link for this one, but it is needed
- [L3MON4D3/LuaSnip](https://github.com/L3MON4D3/LuaSnip) - Snippets for the LSP popups.
- [nvim-treesitter/nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - Neovim treesitter for incremental syntax highlighting.
- [windwp/nvim-autopairs](https://github.com/windwp/nvim-autopairs) - A super powerful autopair plugin for Neovim that supports multiple characters.
- [windwp/nvim-ts-autotag](https://github.com/windwp/nvim-ts-autotag) - Use treesitter to autoclose and autorename html tag.
- [nvim-telescope/telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) - telescope.nvim is a highly extendable fuzzy finder over lists. Built on the latest awesome features from neovim core.
- [nvim-telescope/telescope-file-browser](https://github.com/nvim-telescope/telescope-file-browser.nvim) - telescope-file-browser.nvim is a file browser extension for telescope.nvim. It supports sunchronized creation, deletion, renaming, and moving of files and folders powered by telescope.nvim and plenary.nvim.
- [nvim-tree/nvim-web-devicons](https://github.com/nvim-tree/nvim-web-devicons) - A lua fork of vim-devicons. This plugin provides the same icons as well as colours for each icon.
- [iamcco/markdown-preview.nvim](https://github.com/iamcco/markdown-preview.nvim) - Markdown preview
- [akinsho/bufferline.nvim](https://github.com/akinsho/bufferline.nvim) - A snazzy buffer line.
- [norcalli/nvim-colorizer.lua](https://github.com/norcalli/nvim-colorizer.lua) - A high-performance colour highlighter for Neovim which has no external dependencies.
- [glepnir/lspsaga.nvim](https://github.com/glepnir/lspsaga.nvim) - A light-weight lsp plugin based on Neovim's builtin lsp with a highly performant UI.
- [ray-x/lsp_signature.nvim](https://github.com/ray-x/lsp_signature.nvim) - Show function signature when you type.
- [jose-elias-alvares/null-ls.nvim](https://github.com/ray-x/lsp_signature.nvim) - Use Neovim as a language server to inject LSP diagnostics, code actions, and more via Lua.
- [williamboman/mason.nvim](https://github.com/williamboman/mason.nvim) - Portable package manager for Neovim that runs everywhere Neovim runs.
- [williamboman/mason-lspconfig.nvim](https://github.com/williamboman/mason-lspconfig.nvim) - mason-lspconfig bridges mason.nvim with the lspconfig plugin.
# Fish Shell Customization
This section defines a list of plugins used to customize fish.
- [Tide](https://github.com/IlanCosman/tide) - The ultimate Fish prompt.
- [Fisher](https://github.com/jorgebucaran/fisher) - Manage functions, completions, bindings, and snippets from the command line.
- [Exa](https://the.exa.website/) - New gen `ls`.
- [Z](https://github.com/jethrokuan/z) - tracks the directories you visit and jump between them.
- [Peco](https://github.com/peco/peco) - Filterting tool.
- [Llama](https://github.com/antonmedv/llama) - Terminal file manager.
- [ghq](https://github.com/x-motemen/ghq) - Manage remote repository clones.

View file

@ -1,4 +1,4 @@
# Setup # MacOS Setup
Follow the steps below to configure the dotfiles on macOS. Follow the steps below to configure the dotfiles on macOS.
@ -21,6 +21,9 @@ For more info:
- [Fish](https://fishshell.com/) - fish is a smart and user-friendly command line shell for Linux, macOS, and the rest of the family. - [Fish](https://fishshell.com/) - fish is a smart and user-friendly command line shell for Linux, macOS, and the rest of the family.
Here is a list of [Fish customizations](/fish.md).
#### Make fish the default shell #### Make fish the default shell
```bash ```bash
@ -67,69 +70,19 @@ Neovim is an extension of vim that supports Lua scripting for configurations and
brew install neovim brew install neovim
``` ```
After installing neovim, we want to install all the language servers needed and formatters before installing plugins to avoid any problems. After installing `neovim` check if the version is `>= 0.9.0`.
This is important because `treesitter` seems to be having problems with earlier versions.
As of now the stable version is `0.8.1` and it is causing problems.
---
#### Language Servers If the version is not `>= 0.9.0`, follow these steps to install a compatible version:
For information on specific configuration head to [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md) 1. Download [nvim-macos.tar.gz](https://github.com/neovim/neovim/releases/download/nightly/nvim-macos.tar.gz).
2. Run `xattr -c ./nvim-macos.tar.gz` (to avoid "unknown developer" warning)
3. Extract: `tar xzvf nvim-macos.tar.gz`
4. Run `./nvim-macos/bin/nvim`
**Typescript**: [https://github.com/typescript-language-server/typescript-language-server](https://github.com/typescript-language-server/typescript-language-server) Let's create a symlink to the binary file:
`sudo ln -s /path/where/it/is/located/bin/nvim /usr/local/bin/nvim`. This will allow us to run `nvim` without moving the binary to `usr/local/bin`.
**Golang**: [https://github.com/golang/tools/tree/master/gopls](https://github.com/golang/tools/tree/master/gopls) Now it is time to [setup Neovim](/nvim.md).
**Clangd**: [https://clangd.llvm.org/installation.html](https://clangd.llvm.org/installation.html)
**Pyright**: [https://github.com/microsoft/pyright](https://github.com/microsoft/pyright)
**Tailwindcss**: [https://github.com/tailwindlabs/tailwindcss-intellisense](https://github.com/tailwindlabs/tailwindcss-intellisense)
---
#### Formatter
---
**Prettierd**: [https://github.com/fsouza/prettierd](https://github.com/fsouza/prettierd)
---
#### Neovim plugins
- [wbthomason/packer.nvim](https://github.com/wbthomason/packer.nvim) - Plugin Manager for Neovim >= 5.0
- [nvim-lualine/lualine.nvim](https://github.com/nvim-lualine/lualine.nvim) - A blazing fast and easy to configure Neovim statusline written in Lua.
- [tjdevries/colorbuddy.nvim](https://github.com/tjdevries/colorbuddy.nvim) - A colourscheme helper for Neovim.
- [svrana/neosolarized.nvim](https://github.com/svrana/neosolarized.nvim) - A truecolour, solarized dark colourscheme using.
- [neovim/nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - Configurations for Neovim builtin LSP server.
- [onsails/lspkind-nvim](https://github.com/onsails/lspkind.nvim) - vscode-like pictograms.
- [hrsh7th/nvim-cmp](https://github.com/hrsh7th/nvim-cmp) - A completion engine plugin for neovim written in Lua.
- [hrsh7th/cmp-buffer](https://github.com/hrsh7th/cmp-buffer) - nvim-cmp source for buffer words.
- hrsh7th/cmp-nvim-lsp - No link for this one, but it is needed
- [L3MON4D3/LuaSnip](https://github.com/L3MON4D3/LuaSnip) - Snippets for the LSP popups.
- [nvim-treesitter/nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - Neovim treesitter for incremental syntax highlighting.
- [windwp/nvim-autopairs](https://github.com/windwp/nvim-autopairs) - A super powerful autopair plugin for Neovim that supports multiple characters.
- [windwp/nvim-ts-autotag](https://github.com/windwp/nvim-ts-autotag) - Use treesitter to autoclose and autorename html tag.
- [nvim-telescope/telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) - telescope.nvim is a highly extendable fuzzy finder over lists. Built on the latest awesome features from neovim core.
- [nvim-telescope/telescope-file-browser](https://github.com/nvim-telescope/telescope-file-browser.nvim) - telescope-file-browser.nvim is a file browser extension for telescope.nvim. It supports sunchronized creation, deletion, renaming, and moving of files and folders powered by telescope.nvim and plenary.nvim.
- [nvim-tree/nvim-web-devicons](https://github.com/nvim-tree/nvim-web-devicons) - A lua fork of vim-devicons. This plugin provides the same icons as well as colours for each icon.
- [iamcco/markdown-preview.nvim](https://github.com/iamcco/markdown-preview.nvim) - Markdown preview
- [akinsho/bufferline.nvim](https://github.com/akinsho/bufferline.nvim) - A snazzy buffer line.
- [norcalli/nvim-colorizer.lua](https://github.com/norcalli/nvim-colorizer.lua) - A high-performance colour highlighter for Neovim which has no external dependencies.
- [glepnir/lspsaga.nvim](https://github.com/glepnir/lspsaga.nvim) - A light-weight lsp plugin based on Neovim's builtin lsp with a highly performant UI.
- [ray-x/lsp_signature.nvim](https://github.com/ray-x/lsp_signature.nvim) - Show function signature when you type.
- [jose-elias-alvares/null-ls.nvim](https://github.com/ray-x/lsp_signature.nvim) - Use Neovim as a language server to inject LSP diagnostics, code actions, and more via Lua.
- [williamboman/mason.nvim](https://github.com/williamboman/mason.nvim) - Portable package manager for Neovim that runs everywhere Neovim runs.
- [williamboman/mason-lspconfig.nvim](https://github.com/williamboman/mason-lspconfig.nvim) - mason-lspconfig bridges mason.nvim with the lspconfig plugin.
# Fish Shell Customization
This section defines a list of plugins used to customize fish.
- [Tide](https://github.com/IlanCosman/tide) - The ultimate Fish prompt.
- [Fisher](https://github.com/jorgebucaran/fisher) - Manage functions, completions, bindings, and snippets from the command line.
- [Exa](https://the.exa.website/) - New gen `ls`.
- [Z](https://github.com/jethrokuan/z) - tracks the directories you visit and jump between them.
- [Peco](https://github.com/peco/peco) - Filterting tool.
- [Llama](https://github.com/antonmedv/llama) - Terminal file manager.
- [ghq](https://github.com/x-motemen/ghq) - Manage remote repository clones.

40
docs/nvim.md Normal file
View file

@ -0,0 +1,40 @@
# Setup Neovim
> This section assumes you have cloned this repository.
1. Create a symlink of the `nvim` folder: `ln -s /path/to/repository/nvim $HOME/.config/nvim`.
2. Replace `$HOME` with the full path to your home directory.
3. Open `packer.lua` that is inside `nvim/lua/juancwu`.
4. Run command `:so`, then run `:PackerSync` or `:PackerInstall`.
Everything should be working.
## Neovim plugins
Here is a list of the plugins that I use:
- [wbthomason/packer.nvim](https://github.com/wbthomason/packer.nvim) - Plugin Manager for Neovim >= 5.0
- [VonHeikemen/lsp-zero](https://github.com/VonHeikemen/lsp-zero.nvim) - All in one, sweet, sweet LSP configurations.
- [nvim-lualine/lualine.nvim](https://github.com/nvim-lualine/lualine.nvim) - A blazing fast and easy to configure Neovim statusline written in Lua.
- [tjdevries/colorbuddy.nvim](https://github.com/tjdevries/colorbuddy.nvim) - A colourscheme helper for Neovim.
- [svrana/neosolarized.nvim](https://github.com/svrana/neosolarized.nvim) - A truecolour, solarized dark colourscheme using.
- [neovim/nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - Configurations for Neovim builtin LSP server.
- [onsails/lspkind-nvim](https://github.com/onsails/lspkind.nvim) - vscode-like pictograms.
- [hrsh7th/nvim-cmp](https://github.com/hrsh7th/nvim-cmp) - A completion engine plugin for neovim written in Lua.
- [hrsh7th/cmp-buffer](https://github.com/hrsh7th/cmp-buffer) - nvim-cmp source for buffer words.
- hrsh7th/cmp-nvim-lsp - No link for this one, but it is needed
- [L3MON4D3/LuaSnip](https://github.com/L3MON4D3/LuaSnip) - Snippets for the LSP popups.
- [nvim-treesitter/nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - Neovim treesitter for incremental syntax highlighting.
- [windwp/nvim-autopairs](https://github.com/windwp/nvim-autopairs) - A super powerful autopair plugin for Neovim that supports multiple characters.
- [windwp/nvim-ts-autotag](https://github.com/windwp/nvim-ts-autotag) - Use treesitter to autoclose and autorename html tag.
- [nvim-telescope/telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) - telescope.nvim is a highly extendable fuzzy finder over lists. Built on the latest awesome features from neovim core.
- [nvim-telescope/telescope-file-browser](https://github.com/nvim-telescope/telescope-file-browser.nvim) - telescope-file-browser.nvim is a file browser extension for telescope.nvim. It supports sunchronized creation, deletion, renaming, and moving of files and folders powered by telescope.nvim and plenary.nvim.
- [nvim-tree/nvim-web-devicons](https://github.com/nvim-tree/nvim-web-devicons) - A lua fork of vim-devicons. This plugin provides the same icons as well as colours for each icon.
- [iamcco/markdown-preview.nvim](https://github.com/iamcco/markdown-preview.nvim) - Markdown preview
- [akinsho/bufferline.nvim](https://github.com/akinsho/bufferline.nvim) - A snazzy buffer line.
- [norcalli/nvim-colorizer.lua](https://github.com/norcalli/nvim-colorizer.lua) - A high-performance colour highlighter for Neovim which has no external dependencies.
- [glepnir/lspsaga.nvim](https://github.com/glepnir/lspsaga.nvim) - A light-weight lsp plugin based on Neovim's builtin lsp with a highly performant UI.
- [ray-x/lsp_signature.nvim](https://github.com/ray-x/lsp_signature.nvim) - Show function signature when you type.
- [jose-elias-alvares/null-ls.nvim](https://github.com/ray-x/lsp_signature.nvim) - Use Neovim as a language server to inject LSP diagnostics, code actions, and more via Lua.
- [williamboman/mason.nvim](https://github.com/williamboman/mason.nvim) - Portable package manager for Neovim that runs everywhere Neovim runs.
- [williamboman/mason-lspconfig.nvim](https://github.com/williamboman/mason-lspconfig.nvim) - mason-lspconfig bridges mason.nvim with the lspconfig plugin.