management to simplify and streamline the setup of the bufferline plugin
chore(bufferline.lua): remove bufferline plugin configuration and dependencies
to declutter the plugin setup and improve maintainability
This commit adds support for the toggleterm plugin in Neovim. It introduces a new Lua file `toggleterm.lua` in the `absolute/after` directory, which configures the toggleterm plugin. It sets up key mappings to open a terminal and toggle the lazygit terminal.
The `toggleterm.lua` file imports the `toggleterm` and `Terminal` modules from the toggleterm plugin. It then sets up the toggleterm plugin using the `toggle_term.setup()` function.
The `lazygit` terminal is defined using the `Terminal:new()` function. It specifies the command to run (`lazygit`), the directory to run the command in (`git_dir`), and the floating window options. It also defines an `on_open` function to start insert mode and set a key mapping to close the terminal, and an `on_close` function to start insert mode.
The `_LAZYGIT_TOGGLE()` function is defined to toggle the `lazygit` terminal.
Key mappings are set using the `vim.api.nvim_set_keymap()` function. The `<leader>gl` mapping is set to call the `_LAZYGIT_TOGGLE()` function, and the `<C-`` mapping is set to open a terminal using the `ToggleTerm` command.
Additionally, a new Lua file `toggleterm.lua` is added in the `absolute/plugins` directory, which exports the toggleterm plugin configuration. It requires the `absolute.after.toggleterm` module to configure the toggleterm plugin.
This commit adds a new Lua file `apple-pkl.lua` to the `absolute/plugins` directory. The file contains the configuration for the plugin `apple/pkl-neovim`. The configuration includes the following:
- The plugin URL: `https://github.com/apple/pkl-neovim`
- The plugin should be loaded lazily
- The plugin should be triggered on the event "BufReadPre *.pkl"
- The plugin has a dependency on `nvim-treesitter/nvim-treesitter`
- The plugin build function installs the `pkl` language for Treesitter using the command `TSInstall! pkl`
This commit adds two new files: `hologram.lua` and `hologram.lua`.
The `hologram.lua` file contains the configuration for the `hologram.nvim` plugin. It is responsible for setting up the plugin and linking it to the `absolute.after.hologram` file.
The `hologram.lua` file contains the implementation for handling image previews using the `hologram` and `image` modules. It sets up autocmds to trigger the `handle_image_preview` function when entering or opening a buffer with an image file. The function creates a new image object and displays it for 5 seconds before deleting it. There is also a `handle_image_preview_close` function that is triggered when leaving or closing a buffer with an image file, but it is currently commented out.
These changes were made to enhance the functionality of Neovim by allowing users to preview images within the editor using the `hologram.nvim` plugin.
This commit adds support for the todo-comments plugin. It includes the following changes:
- Added a new file `todo-comments.lua` in the `lua/absolute/after` directory.
- Imported the `todo-comments` module.
- Set up the `todo-comments` plugin with default options.
- Defined key mappings for jumping to previous and next todo comments.
- Defined key mappings for opening comments in Telescope and Trouble.
- Added a new file `todo-comments.lua` in the `lua/absolute/plugins` directory.
- Exported a table with the configuration for the `todo-comments` plugin, including its dependencies and a config function that requires the `absolute.after.todo-comments` module.
feat(lsp-config.lua): enable rope_autoimport, flake8, pyflakes, and pycodestyle plugins for pylsp
refactor(lsp-config.lua): comment out jedi_language_server configuration
The change adds a new keymap in the remap.lua file to select all text in the editor when the "<leader>a" shortcut is pressed. This allows users to quickly select the entire document without manually scrolling or using other selection methods.
The keymap command for the leader key followed by backtick (`) has been updated to toggle the NvimTree instead of the Maximizer. This change improves the functionality of the keymap and aligns it with the desired behavior.
chore(remap.lua): update keymap command from "<cmd>NvimTreeToggle<CR>" to "<cmd>Cheatsheet<CR>" to match the updated functionality
chore(remap.lua): update description for moving selected line/block of text in visual mode up
The configuration `vim.g.SuperTabContextDefaultCompletionType` is added to set the default completion type in the SuperTab plugin to `<c-n>`. This allows users to use the `<c-n>` key combination to trigger completion in the plugin.
The formatting sources in the null-ls setup have been updated. The `null_ls.builtins.formatting.black` and `null_ls.builtins.formatting.rustfmt` sources have been removed, and the `null_ls.builtins.formatting.autopep8` source has been added. This change was made to improve the formatting capabilities of the null-ls plugin.
feat(lsp-config.lua): add support for tailwindcss lsp and attach tailwind_colors only when using tailwindcss lsp
feat(lsp-config.lua): add key mappings for various LSP functionalities like go to declaration, go to definitions, show documentation, show LSP implementation, get help, show LSP type definitions, smart rename, see available code actions, show LSP references, format file, and restart LSP
feat(lsp-config.lua): configure language servers for html, typescript, css, tailwindcss, svelte, emmet, python, jedi, docker, json, vue, rust, lua, css, htmx, docker file, docker compose, and eslint
The `tailwindcss-colors.lua` file was added to the `absolute/after` directory. This file imports the `tailwindcss-colors` module and sets it up.
The `tailwindcss-colors.lua` file was also added to the `absolute/plugins` directory. This file returns a table with the plugin configuration, including a `config` function that requires the `absolute.after.tailwindcss-colors` module.
These changes were made to add support for the `tailwindcss-colors` plugin in the Absolute Neovim configuration.
The tailwind-sorter.lua file was added to the absolute/after directory. This file sets up the tailwind-sorter plugin with the following configuration:
- on_save_enabled is set to true, enabling the plugin to run on file save.
- on_save_pattern is set to a list of file patterns for which the plugin should run on save. The patterns include "*.html", "*.js", "*.jsx", "*.tsx", "*.twig", "*.hbs", "*.php", "*.heex", "*.astro", and "*.vue".
Additionally, the tailwind-sorter.lua file was added to the absolute/plugins directory. This file returns a table with the following properties:
- The first element is the plugin name "laytan/tailwind-sorter.nvim".
- The dependencies property specifies the required plugins "nvim-treesitter/nvim-treesitter" and "nvim-lua/plenary.nvim".
- The build property specifies the build command to be executed in the "formatter" directory. This command installs the necessary npm packages and builds the plugin.
- The config property is a function that requires the "absolute.after.tailwind-sorter" module, which contains the plugin configuration.
These changes were made to add the tailwind-sorter plugin to the project and configure it for use.
Add keyseer plugin to the project by including the `jokajak/keyseer.nvim` package in the `lua/absolute/plugins/keyseer.lua` file. The plugin is configured to use the latest version available. The configuration file `lua/absolute/after/keyseer.lua` is also added, which sets up keyseer.
feat(remap.lua): add descriptions to keymap settings for better understanding and maintainability
fix(remap.lua): fix keymap setting for toggling TMUX Pane to use the correct leader key
The treesj.lua file is added to the project to enable the toggling of Treesitter Join functionality. The `tsj.setup` function is called to configure the plugin with the option `use_default_keymaps` set to `false`. This ensures that the default keymaps provided by the plugin are not used.
A keymap is set using `vim.keymap.set` to bind the `<leader>m` key combination in normal mode to the command `TSJToggle`. The `opts.desc` option is set to provide a description for the keymap.
This change allows users to toggle the Treesitter Join functionality using the `<leader>m` key combination in normal mode.
The `trouble.lua` file is added to configure the integration between the `telescope` plugin and the `trouble` plugin. This configuration sets up key mappings for opening trouble windows and quickfix lists. It also adds keybindings for toggling document diagnostics, workspace diagnostics, and the quickfix list using the leader key. This configuration enhances the functionality of the `telescope` plugin by integrating it with the `trouble` plugin.
The fzf.lua file is added to the absolute/plugins directory. It contains the configuration for the fzf plugin. The configuration includes the plugin name "junegunn/fzf" and the build command "./install --all". This configuration enables the fzf plugin to be used in the project.
The git-blame.lua file is added with the following configuration:
- The plugin "f-person/git-blame.nvim" is included.
- The event "VeryLazy" is associated with the plugin.
The `nvim-surround.lua` file was added to the `lua/absolute/after` directory. This file contains the configuration for the `nvim-surround` plugin. The `surround.setup({})` function is called to initialize the plugin with an empty configuration object. This allows the plugin to be used with default settings.
The none-ls plugin is added to the list of plugins in the absolute configuration. The plugin is configured to load the "absolute.after.none-ls" module. This configuration allows for the integration of the none-ls plugin into the absolute plugin system.
Add configuration for the nvim-bqf plugin. This plugin provides enhanced quickfix and location list functionality for Neovim. The configuration includes specifying the plugin as a dependency and configuring it to load after other plugins. Additionally, it requires the nvim-treesitter and fzf plugins as dependencies. Finally, it loads a custom configuration file for the nvim-bqf plugin.
The changes were made to add configuration for the null-ls plugin in the none-ls.lua file. This configuration enables formatting with the following tools: stylua, prettierd, shfmt, black, and rustfmt. This allows for consistent and automated formatting of code in the Lua project.
Add the nvim-surround plugin to the list of plugins used in the configuration. This plugin provides convenient mappings and commands for manipulating surrounding characters. The plugin is sourced from the "kylechui/nvim-surround" repository, using the latest version available. The plugin is configured to be loaded during the "VeryLazy" event, and the necessary configuration file is required to be loaded after the plugin is initialized.
Add a new file `treesj.lua` to the `absolute/plugins` directory. The file contains the configuration for the `treesj` plugin. The plugin is sourced from the repository `Wansmer/treesj` and has a dependency on `nvim-treesitter/nvim-treesitter`. The configuration includes loading the `absolute.after.treesj` module.
The trouble.nvim plugin is added to the project. It is a plugin that provides a better way to handle and navigate through the list of diagnostics and other code issues. The plugin is added as a dependency and requires the nvim-tree/nvim-web-devicons plugin to function properly. The configuration for the trouble.nvim plugin is added in the absolute.after.trouble.lua file.
Add the cheatsheet plugin and its dependencies to the configuration file. This allows for the integration of the cheatsheet functionality into the application.
The key mappings in the telescope.lua file have been refactored to use the new mappings syntax introduced in the latest version of Telescope. Additionally, support for the trouble.nvim plugin has been added by mapping the `<C-q>` key to the `trouble.open_with_trouble` function in both insert and normal mode. This allows for easier navigation and troubleshooting within Telescope.
The `indent-blank-line` plugin is added to enhance the indentation of blank lines in the code. This improves code readability and makes it easier to navigate through the code. The plugin is configured to use the `ibl` module and is integrated into the existing `absolute.after` module.