feat: add toggleterm, markdown preview keymaps, lualine switch filename and navic (#23)

- Configured toggleterm plugin
- Added keymap for markdown preview
- Changed lualine so Navic is better readable by switching filename and
type with Navic.
This commit is contained in:
Roel de Cort 2024-08-20 00:03:30 +02:00 committed by GitHub
parent 864f443364
commit 0331a50aa8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 105 additions and 16 deletions

BIN
.docs/images/neovim.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 781 KiB

View file

@ -2,29 +2,63 @@
This repository contains my personal configuration NixVim, a Neovim configuration managed with Nix. This repository contains my personal configuration NixVim, a Neovim configuration managed with Nix.
## General Configuration ![Neovim](./.docs/images/neovim.png)
## How to use
You can use this flake as an input:
```nix
{
inputs = {
nixvim.url = "github:dc-tec/nixvim"
};
}
```
You can then install the package either normally or through home-manager.
#### Normal:
```nix
environment.systemPackages = [
inputs.nixvim.packages.x86_64-linux.default
];
```
#### Home-Manager
```nix
home-manager.users.<user>.home.packages = [
inputs.nixvim.packages.x86_64-linux.default
];
```
## Plugins
### General Configuration
- `settings.nix`: Contains general settings for Neovim. - `settings.nix`: Contains general settings for Neovim.
- `keymaps.nix`: Defines key mappings. - `keymaps.nix`: Defines key mappings.
- `auto_cmds.nix`: Sets up automatic commands. - `auto_cmds.nix`: Sets up automatic commands.
- `file_types.nix`: Configures file type specific settings. - `file_types.nix`: Configures file type specific settings.
## Themes ### Themes
- `default.nix`: Sets the default theme. - `default.nix`: Sets the default theme.
## Completion ### Completion
- `cmp.nix`: Configures the cmp completion framework. - `cmp.nix`: Configures the cmp completion framework.
- `cmp-copilot.nix`: Adds GitHub Copilot support to cmp. - `cmp-copilot.nix`: Adds GitHub Copilot support to cmp.
- `lspkind.nix`: Adds icons to lsp completion items. - `lspkind.nix`: Adds icons to lsp completion items.
- `autopairs.nix`: Adds the autopairs plugin. - `autopairs.nix`: Adds the autopairs plugin.
## Snippets ### Snippets
- `luasnip.nix`: Configures the LuaSnip snippet engine. - `luasnip.nix`: Configures the LuaSnip snippet engine.
## Editor Plugins and Configurations ### Editor Plugins and Configurations
- `neo-tree.nix`: Configures the NeoTree file explorer. - `neo-tree.nix`: Configures the NeoTree file explorer.
- `treesitter.nix`: Configures the TreeSitter syntax highlighter. - `treesitter.nix`: Configures the TreeSitter syntax highlighter.
@ -35,24 +69,24 @@ This repository contains my personal configuration NixVim, a Neovim configuratio
- `copilot-chat.nix`: Configures the Copilot Chat plugin for interacting with GitHub Copilot. - `copilot-chat.nix`: Configures the Copilot Chat plugin for interacting with GitHub Copilot.
- `navic.nix`: Configures the Navic plugin, shows the current code context. - `navic.nix`: Configures the Navic plugin, shows the current code context.
## UI Plugins ### UI Plugins
- `bufferline.nix`: Configures the Bufferline plugin for enhanced buffer/tab display. - `bufferline.nix`: Configures the Bufferline plugin for enhanced buffer/tab display.
- `lualine.nix`: Configures the Lualine status line plugin. - `lualine.nix`: Configures the Lualine status line plugin.
- `startup.nix`: Configures the startup screen. - `startup.nix`: Configures the startup screen.
## LSP ### LSP
- `lsp.nix`: Configures the Neovim LSP client. - `lsp.nix`: Configures the Neovim LSP client.
- `conform.nix`: Configures the Conform plugin for automatic code formatting. - `conform.nix`: Configures the Conform plugin for automatic code formatting.
- `fidget.nix`: Configures the Fidget plugin for displaying LSP diagnostics in the status line. - `fidget.nix`: Configures the Fidget plugin for displaying LSP diagnostics in the status line.
## Git ### Git
- `lazygit.nix`: Configures the LazyGit plugin for Git integration. - `lazygit.nix`: Configures the LazyGit plugin for Git integration.
- `gitsigns.nix`: Configures the GitSigns plugin for displaying Git diff information. - `gitsigns.nix`: Configures the GitSigns plugin for displaying Git diff information.
## Utils ### Utils
- `telescope.nix`: Configures the Telescope plugin for fuzzy finding and picking. - `telescope.nix`: Configures the Telescope plugin for fuzzy finding and picking.
- `whichkey.nix`: Configures the WhichKey plugin for displaying key mappings. - `whichkey.nix`: Configures the WhichKey plugin for displaying key mappings.
@ -60,6 +94,7 @@ This repository contains my personal configuration NixVim, a Neovim configuratio
- `mini.nix`: Configures the Mini plugin. - `mini.nix`: Configures the Mini plugin.
- `obsidian.nix`: Confiugres the Obsidian plugin, for note-taking purposes. - `obsidian.nix`: Confiugres the Obsidian plugin, for note-taking purposes.
- `markdown-preview.nix`: Configures the Markdown Preview plugin. - `markdown-preview.nix`: Configures the Markdown Preview plugin.
- `toggleterm.nix`: Configures Terminal plugin.
Please refer to the individual `.nix` files for more detailed configuration information. Please refer to the individual `.nix` files for more detailed configuration information.

View file

@ -49,5 +49,6 @@ _: {
./plugins/utils/mini.nix ./plugins/utils/mini.nix
./plugins/utils/markdown-preview.nix ./plugins/utils/markdown-preview.nix
./plugins/utils/obsidian.nix ./plugins/utils/obsidian.nix
./plugins/utils/toggleterm.nix
]; ];
} }

View file

@ -1,7 +1,7 @@
_: { _: {
plugins.navic = { plugins.navic = {
enable = true; enable = true;
separator = " "; separator = " ";
highlight = true; highlight = true;
depthLimit = 5; depthLimit = 5;
lsp = { lsp = {

View file

@ -1,7 +1,7 @@
_: { _: {
plugins.luasnip = { plugins.luasnip = {
enable = true; enable = true;
extraConfig = { settings = {
enable_autosnippets = true; enable_autosnippets = true;
store_selection_keys = "<Tab>"; store_selection_keys = "<Tab>";
}; };

View file

@ -46,6 +46,11 @@ _: {
}; };
}; };
} }
{
name = "navic";
}
];
lualine_x = [
{ {
name = "filetype"; name = "filetype";
extraConfig = { extraConfig = {
@ -63,11 +68,6 @@ _: {
path = 1; path = 1;
}; };
} }
];
lualine_x = [
{
name = "navic";
}
{ {
name.__raw = '' name.__raw = ''
function() function()

View file

@ -15,4 +15,15 @@ _: {
}; };
}; };
}; };
keymaps = [
{
mode = "n";
key = "<leader>mp";
action = "<cmd>MarkdownPreview<cr>";
options = {
desc = "Toggle Markdown Preview";
};
}
];
} }

View file

@ -0,0 +1,42 @@
_: {
plugins.toggleterm = {
enable = true;
settings = {
size = 20;
};
};
keymaps = [
{
mode = "n";
key = "<leader>t";
action = "<cmd>ToggleTerm<cr>";
options = {
desc = "Toggle Terminal Window";
};
}
{
mode = "n";
key = "<leader>tv";
action = "<cmd>ToggleTerm direction=vertical<cr>";
options = {
desc = "Toggle Vertical Terminal Window";
};
}
{
mode = "n";
key = "<leader>th";
action = "<cmd>ToggleTerm direction=horizontal<cr>";
options = {
desc = "Toggle Horizontal Terminal Window";
};
}
{
mode = "n";
key = "<leader>tf";
action = "<cmd>ToggleTerm direction=float<cr>";
options = {
desc = "Toggle Floating Terminal Window";
};
}
];
}