Skip to content

Commit

Permalink
Merge branch 'master' into angularDoc
Browse files Browse the repository at this point in the history
  • Loading branch information
EverardoRamirez committed Jul 26, 2024
2 parents dd036b2 + f8a3665 commit 1eda756
Show file tree
Hide file tree
Showing 307 changed files with 15,507 additions and 401 deletions.
6 changes: 5 additions & 1 deletion .github/actions/spelling/expect.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
Alacritty
autoclose
autorename
autoselect
Expand All @@ -12,6 +13,7 @@ fzf
fzy
Github
gitignored
Gitsigns
highlighter
hrsh
hsl
Expand All @@ -32,9 +34,11 @@ scrolloff
stoggleup
strlist
tabpage
tmux
todo
tokyonight
uelic
vheight
vimgrep
vsplit
winseparator
workflow
6 changes: 4 additions & 2 deletions docs/beginners-guide/keybinds-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,11 @@ Also see:

**TIP:** `<leader>` is space by default, read [`:help keycodes`](https://neovim.io/doc/user/intro.html#keycodes) for more key names

**TIP:** `<M>` is `alt` on Windows/Linux and `option` on MacOS
**TIP:** `<M>` is `alt` on Windows/Linux and `option` on macOS

**TIP:** If you happen to be using iTerm2, take note that `<M>` requires the `option` key to be mapped to `Esc+` in [ Preferences - Profiles - Keys ](https://github.com/LunarVim/lunarvim.org/pull/377#discussion_r1140747022) for proper functioning in both the terminal and tmux
**TIP:** For macOS users: For the `option` key (``) to work as `<M>` you may need to adjust some settings:
- For iTerm2: Select `Esc+` as the Option key setting in [ Preferences - Profiles - Keys ](https://github.com/LunarVim/lunarvim.org/pull/377#discussion_r1140747022)
- For Alacritty: Make sure you're on Alacritty version >= 0.12.0. In your `alacritty.yml` config file, set `window.option_as_alt` to `Both` or `OnlyLeft` \ `OnlyRight` per your preference (https://github.com/alacritty/alacritty/issues/62).

**TIP:** Non-leader keybindings (for e.g. `<C-\>`, mentioned below and others) can be viewed
by pressing `<backspace>` in the which-key main menu (first popup after pressing `<leader>`)
Expand Down
50 changes: 49 additions & 1 deletion docs/beginners-guide/plugins-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,52 @@ sidebar_position: 2

# Plugins overview

This page is not written yet, [you can help us write it](https://github.com/LunarVim/lunarvim.org/issues/352)
LunarVim supports a wide range of plugins to enhance the functionality of the Neovim text editor. This guide will introduce you to the basic core plugins that are part of LunarVim.

## Core plugins

LunarVim also includes a set of [core plugins](../../features/core-plugins-list) that are pre-configured and provided out of the box. These plugins offer essential features and functionality.

These plugins are just a starting point, and there are many more available to explore. Remember to read the documentation and experiment with different plugins to find the ones that suit your workflow and preferences.

## Core plugin details

### Neovim LSP Configuration

The `nvim-lspconfig` plugin provides easy configuration for the built-in Language Server Protocol (LSP) client in Neovim. It simplifies the setup process for various language servers, enabling features like code completion, linting, and more.

### nvim-treesitter

`nvim-treesitter` brings advanced syntax highlighting and parsing capabilities to Neovim. It improves code highlighting accuracy, enables better indentation, and allows for various language-specific features.

### Telescope

`Telescope` is a highly extensible fuzzy finder plugin. It provides a powerful interface for searching files, buffers, and other resources within your Neovim environment. With its intuitive navigation and customizable options, it simplifies the process of finding and opening files.

### NvimTree

`NvimTree`, a widely embraced Neovim plugin, enriches the coding experience by seamlessly integrating a file explorer sidebar within the interface. This feature optimizes workflow efficiency and seamless file management. NvimTree offers an array of customization options, ensuring alignment with users' preferences. Employing common shortcuts like `o` to open files and `d` to toggle folders, NvimTree significantly streamlines the programming journey.

### Auto Pairs

`Auto Pairs` automatically inserts matching pairs of brackets, quotes, and other characters as you type. It saves time and reduces the chances of mismatched pairs. This plugin greatly enhances the editing experience and helps prevent syntax errors.

### Comment.nvim

`Comment.nvim` simplifies the process of commenting and uncommenting code blocks. It supports various programming languages and provides keybindings for quickly toggling comments. This plugin makes it easy to annotate your code and improve readability.

### Gitsigns

If you're using Git for version control, `Gitsigns` is a valuable plugin. It displays Git diff markers and signs within the gutter, indicating added, modified, or deleted lines. This helps you visualize changes and track the status of your files directly in Neovim.

### Lualine

`Lualine` is a customizable statusline plugin for Neovim. It allows you to display various information, such as the current mode, file path, and Git branch, in your statusline. With its simple configuration, you can personalize the appearance and contents of your statusline.

### Which-key

`Which-key` provides a popup that shows keybindings and their associated commands. It helps you discover and remember available keybindings within Neovim. This plugin is particularly useful for beginners who want to explore and learn the various functionalities offered by Neovim and its plugins.

## Installing and configuring plugins

Plugins in LunarVim are managed using [folke/lazy.nvim](https://github.com/folke/lazy.nvim). To install plugins, you need to add entries to the `lvim.plugins` table in your `config.lua`. About configuring your plugins you can read a lot more at [this page](../../configuration/plugins).
13 changes: 13 additions & 0 deletions docs/configuration/appearance/colorschemes.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,19 @@ lvim.autocommands = {
}
```

You can also override parameters in builtin colorscheme; e.g., to have winseparator colored in orange in tokyonight scheme:

```lua
lvim.colorscheme = "tokyonight"
lvim.builtin.theme.name = "tokyonight"
lvim.builtin.theme.tokyonight.options.on_highlights = function(hl, c)
hl.WinSeparator = {
fg = c.orange,
bold = true,
}
end
```

## Transparent Windows

If you're using transparent windows enable this setting
Expand Down
2 changes: 1 addition & 1 deletion docs/configuration/language-features/language-servers.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ configure it automatically for you.
### Manual installation

```lua
lvim.lsp.automatic_servers_installation = false
lvim.lsp.installer.setup.automatic_installation = false
```

Please refer to [mason](https://github.com/williamboman/mason.nvim) to see the updated full list of
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ Let's take `python` as an example:
lvim.format_on_save.pattern = { "*.lua", "*.py" }
```

### Registering custom linters/formatters
## Registering custom linters/formatters

LunarVim supports all linters and formatters defined as builtins to null-ls, however there may be occasions where you want to run a linter/formatter that null-ls does not support.

Expand Down
92 changes: 90 additions & 2 deletions docs/configuration/plugins/plugins.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,98 @@
# Plugins

Plugins are managed by [folke/lazy.nvim](https://github.com/folke/lazy.nvim),
and are split into [core-plugins](./core-plugins.md) and [user-plugins](./user-plugins.md).
Plugins are managed by [folke/lazy.nvim](https://github.com/folke/lazy.nvim).

:::tip

use `:Lazy` to see a list of all installed plugins!

:::

# Installing plugins

User plugins can be installed by adding entries to the `lvim.plugins` table in
your `config.lua` file, saving or manually invoking `LvimReload` will trigger
lazy to sync all the plugins in that table.

Example:

```lua
lvim.plugins = {
{ "lunarvim/colorschemes" },
{
"stevearc/dressing.nvim",
config = function()
require("dressing").setup({
input = { enabled = false },
})
end,
},
{
"nvim-neorg/neorg",
ft = "norg", -- lazy-load on filetype
config = true, -- run require("neorg").setup()
},
}
```

:::tip

You can find all available options [here](https://github.com/folke/lazy.nvim#-plugin-spec)
or in lunarvim: `:help lazy.nvim-plugin-spec`
You can find more examples [here](https://github.com/folke/lazy.nvim#examples)

:::

:::info

Removing a plugin from the `lvim.plugins` table removes it from your configuration but not your system. To remove them completely, run `:Lazy clean`

:::

## Core plugins

The configurations for core plugins are accessible through the `lvim.builtin` table.

### Disabling core plugins

Most should contain an `active` attribute that can be set to `false` to disable
the plugin

```lua
lvim.builtin.alpha.active = false
lvim.builtin.dap.active = false
```

:::caution

Disabling a plugin will not take effect until you restart lvim.

:::

### Configuring core plugins

To configure a builtin plugin, edit options in `lvim.builtin.<builtin>`.
You can press `<TAB>` to get autocomplete suggestions to explore these settings.

```lua
lvim.builtin.cmp.completion.keyword_length = 2
lvim.builtin.telescope.defaults.layout_config.width = 0.95
lvim.builtin.telescope.defaults.layout_config.preview_cutoff = 75
```

:::tip

A plugin's README (and `docs/` folder if it exists) typically contain excellent documentation, so it may be worthwhile to create an alias if you use them often.

:::

### Pinning

Versions of core plugins are pinned for better stability,
you can disable pinning by setting an environment variable `$LVIM_DEV_MODE`, e.g. can be defined in `~/.local/bin/lvim` or in your shell's rc file:

```bash
export LVIM_DEV_MODE=1
# or
alias lvim="LVIM_DEV_MODE=1 lvim"
```
4 changes: 2 additions & 2 deletions docs/features/core-plugins-list.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ sidebar_position: 1

| name | description | optional? |
| ------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------- | --------- |
| <a href='https://github.com/wbthomason/packer.nvim'>wbthomason/packer.nvim</a> | A use-package inspired plugin manager for Neovim. Uses native packages, supports Luarocks dependencies | |
| <a href='https://github.com/folke/lazy.nvim'>folke/lazy.nvim</a> | A modern plugin manager for Neovim | |
| <a href='https://github.com/neovim/nvim-lspconfig'>neovim/nvim-lspconfig</a> | Quickstart configurations for the Nvim LSP client | |
| <a href='https://github.com/tamago324/nlsp-settings.nvim'>tamago324/nlsp-settings.nvim</a> | A plugin for setting Neovim LSP with JSON or YAML files | |
| <a href='https://github.com/jose-elias-alvarez/null-ls.nvim'>jose-elias-alvarez/null-ls.nvim</a> | Use Neovim as a language server to inject LSP diagnostics, code actions, and more via Lua. | |
| <a href='https://github.com/nvimtools/none-ls.nvim/'>nvimtools/none-ls.nvim</a> | Use Neovim as a language server to inject LSP diagnostics, code actions, and more via Lua. | |
| <a href='https://github.com/williamboman/mason-lspconfig.nvim'>williamboman/mason-lspconfig.nvim</a> | Extension to mason.nvim that makes it easier to use lspconfig with mason.nvim | |
| <a href='https://github.com/williamboman/mason.nvim'>williamboman/mason.nvim</a> | Easily install and manage LSP servers, DAP servers, linters, and formatters | |
| <a href='https://github.com/folke/tokyonight.nvim'>folke/tokyonight.nvim</a> | A clean, dark Neovim theme | |
Expand Down
33 changes: 18 additions & 15 deletions docs/installation/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,35 +6,36 @@ sidebar_position: 1

## Prerequisites

- Make sure you have installed the latest version of [`Neovim v0.8.0+`](https://github.com/neovim/neovim/releases/latest).
- Have [`git`](https://cli.github.com/), [`make`](https://www.gnu.org/software/make/), [`pip`](https://pypi.org/project/pip/), [`python`](https://www.python.org/) [`npm`](https://npmjs.com/), [`node`](https://nodejs.org/) and [`cargo`](https://www.rust-lang.org/tools/install) installed on your system.
- Make sure you have installed the latest version of [`Neovim v0.9.5+`](https://github.com/neovim/neovim/releases/latest).
- Have [`git`](https://cli.github.com/), [`make`](https://www.gnu.org/software/make/), [`pip`](https://pypi.org/project/pip/), [`python`](https://www.python.org/), [`npm`](https://npmjs.com/), [`node`](https://nodejs.org/), [`cargo`](https://www.rust-lang.org/tools/install) and [`ripgrep`](https://github.com/BurntSushi/ripgrep) installed on your system.
- [Resolve `EACCES` permissions when installing packages globally](https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally) to avoid error when installing packages with npm.
- [`PowerShell 7+`](https://learn.microsoft.com/en-us/powershell/scripting/whats-new/migrating-from-windows-powershell-51-to-powershell-7?view=powershell-7.2) (for Windows)
- [`PowerShell 7+`](https://learn.microsoft.com/en-us/powershell/scripting/whats-new/migrating-from-windows-powershell-51-to-powershell-7?view=powershell-7.2) (for Windows).

## Optional Feature Prerequisites
- Install [`lazygit`](https://github.com/jesseduffield/lazygit#installation). This enables `<leader>gg` to launch `lazygit` for intergrated and enhanced Git experience while in `lvim`.

- Install [`lazygit`](https://github.com/jesseduffield/lazygit#installation). This enables `<leader>gg` to launch `lazygit` for integrated and enhanced Git experience while in `lvim`.

## Release

(Neovim 0.8.0)
(Neovim 0.9.5)

No alarms and No surprises:

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

<Tabs>
<TabItem value="linux/macos" label="Linux/MacOs">
<TabItem value="linux/macos" label="Linux/MacOS">

```bash
LV_BRANCH='release-1.2/neovim-0.8' bash <(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/fc6873809934917b470bff1b072171879899a36b/utils/installer/install.sh)
LV_BRANCH='master' bash <(curl -s https://raw.githubusercontent.com/LunarVim/LunarVim/master/utils/installer/install.sh)
```

</TabItem>
<TabItem value="windows" label="Windows">

```powershell
pwsh -c "`$LV_BRANCH='release-1.2/neovim-0.8'; iwr https://raw.githubusercontent.com/LunarVim/LunarVim/fc6873809934917b470bff1b072171879899a36b/utils/installer/install.ps1 -UseBasicParsing | iex"
pwsh -c "`$LV_BRANCH='master'; iwr https://raw.githubusercontent.com/LunarVim/LunarVim/master/utils/installer/install.ps1 -UseBasicParsing | iex"
```

</TabItem>
Expand All @@ -43,20 +44,20 @@ pwsh -c "`$LV_BRANCH='release-1.2/neovim-0.8'; iwr https://raw.githubusercontent
_This is intended just to take a look at the base functionalities, so some interactions may be blocked by the environment._

```bash
docker run -w /tmp -it --rm alpine:edge sh -uelic 'addgroup -S lunaruser && adduser -S lunaruser -G lunaruser --shell /bin/sh && apk add yarn git python3 cargo neovim ripgrep alpine-sdk bash --update && LV_BRANCH='release-1.2/neovim-0.8' su -c "bash <(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/fc6873809934917b470bff1b072171879899a36b/utils/installer/install.sh)" lunaruser && su -c /home/lunaruser/.local/bin/lvim lunaruser'
docker run -w /tmp -it --rm alpine:edge sh -uelic 'addgroup -S lunaruser && adduser -S lunaruser -G lunaruser --shell /bin/sh && apk add yarn git python3 cargo neovim ripgrep alpine-sdk bash curl --update && LV_BRANCH='master' su -c "bash <(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/master/utils/installer/install.sh) --no-install-dependencies" lunaruser && su -c /home/lunaruser/.local/bin/lvim lunaruser'
```

</TabItem>
</Tabs>

## Nightly

(Neovim 0.9.0)
(Neovim 0.10.0)

All the new features with all the new bugs:

<Tabs>
<TabItem value="linux/macos" label="Linux/MacOs">
<TabItem value="linux/macos" label="Linux/MacOS">

```bash
bash <(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/master/utils/installer/install.sh)
Expand All @@ -75,7 +76,7 @@ pwsh -c "iwr https://raw.githubusercontent.com/LunarVim/LunarVim/master/utils/in
_This is intended just to take a look at the base functionalities, so some interactions may be blocked by the environment._

```bash
docker run -w /root -it --rm alpine:edge sh -uelic 'apk add git neovim ripgrep alpine-sdk bash --update && bash <(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/master/utils/installer/install.sh) && /root/.local/bin/lvim'
docker run -w /root -it --rm alpine:edge sh -uelic 'apk add git neovim ripgrep alpine-sdk bash curl --update && bash <(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/master/utils/installer/install.sh) --no-install-dependencies && /root/.local/bin/lvim'
```

</TabItem>
Expand All @@ -87,7 +88,9 @@ Make sure to check the [troubleshooting](../troubleshooting/README.md) section i

## Updating LunarVim

- Inside LunarVim `:LvimUpdate`
- LunarVim updates to the current LunarVim branch's latest commit.
- `:LvimUpdate` command in command-line mode.
- `<leader>Lu` using WhichKey.
- From the command-line `lvim +LvimUpdate +q`

### Update the plugins
Expand All @@ -99,13 +102,13 @@ Make sure to check the [troubleshooting](../troubleshooting/README.md) section i
You can remove LunarVim (including the configuration files) using the bundled `uninstall` script

<Tabs>
<TabItem value="linux/macos" label="Linux/MacOs">
<TabItem value="linux/macos" label="Linux/MacOS">

```bash
bash ~/.local/share/lunarvim/lvim/utils/installer/uninstall.sh
```

#### **or**
**or**

```bash
bash <(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/master/utils/installer/uninstall.sh)
Expand Down
6 changes: 3 additions & 3 deletions docs/installation/post-install.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,22 @@ LunarVim uses icons from Nerd Fonts. If you don't want to use them set `lvim.use

### Easy Installer

Visit [ronniedroid/getnf](https://github.com/ronniedroid/getnf) for an easy way to install nerd fonts.
Visit [getnf/getnf](https://github.com/getnf/getnf) for an easy way to install nerd fonts.

### Video Explanation

<iframe width="560" height="315" src="https://www.youtube.com/embed/fR4ThXzhQYI" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="1"></iframe>

### Manual Install

1. Go to the [pached fonts directory](https://www.nerdfonts.com/font-downloads)
1. Go to the [patched fonts directory](https://www.nerdfonts.com/font-downloads)
1. Copy the downloaded files to `~/.local/share/fonts`

### Curl Download

```bash
mkdir -p ~/.local/share/fonts
cd ~/.local/share/fonts && curl -fLo "Droid Sans Mono for Powerline Nerd Font Complete.otf" https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/DroidSansMono/complete/Droid%20Sans%20Mono%20Nerd%20Font%20Complete.otf
cd ~/.local/share/fonts && curl -fLO https://github.com/ryanoasis/nerd-fonts/raw/HEAD/patched-fonts/DroidSansMono/DroidSansMNerdFont-Regular.otf
```

### Terminal settings
Expand Down
2 changes: 2 additions & 0 deletions docs/troubleshooting/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ cd <lunarvim-repo> # this will be in `~/.local/share/lunarvim/lvim` by default
bash utils/installer/install_bin.sh
```

If you installed Neovim using [bob](https://github.com/MordechaiHadad/bob) and get `error: unexpected argument '-u' found`, when running `lvim`, see in this [issue](https://github.com/LunarVim/LunarVim/issues/3612#issuecomment-1379895972) how it can be solved.

## Getting errors after an update

### Cache issues
Expand Down
Loading

0 comments on commit 1eda756

Please sign in to comment.