Simplification of Neovim Configuration #37

Merged
Kruziikrel13 merged 44 commits from rewrite into master 2025-06-29 17:32:49 +10:00
Kruziikrel13 commented 2025-06-29 17:30:59 +10:00 (Migrated from github.com)

Halved Startup Time

Summary by CodeRabbit

  • New Features

    • Introduced a monthly automated release workflow.
    • Added new and enhanced plugin configurations for editor, UI, formatting, file explorer, Git integration, LSP, and utility features.
    • Implemented a customizable dashboard and improved colorscheme management.
    • Expanded Treesitter support with more languages and advanced text objects.
    • Centralized utility functions for plugin management and environment detection.
  • Bug Fixes

    • Improved yank highlight behavior for better compatibility.
  • Refactor

    • Restructured and consolidated plugin configurations for maintainability.
    • Simplified initialization and setup processes.
  • Chores

    • Removed obsolete installer scripts and redundant configuration files.
    • Streamlined and updated documentation to reflect new dependency management.
  • Style

    • Enhanced keybinding organization and plugin loading logic for clarity.
Halved Startup Time <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Introduced a monthly automated release workflow. * Added new and enhanced plugin configurations for editor, UI, formatting, file explorer, Git integration, LSP, and utility features. * Implemented a customizable dashboard and improved colorscheme management. * Expanded Treesitter support with more languages and advanced text objects. * Centralized utility functions for plugin management and environment detection. * **Bug Fixes** * Improved yank highlight behavior for better compatibility. * **Refactor** * Restructured and consolidated plugin configurations for maintainability. * Simplified initialization and setup processes. * **Chores** * Removed obsolete installer scripts and redundant configuration files. * Streamlined and updated documentation to reflect new dependency management. * **Style** * Enhanced keybinding organization and plugin loading logic for clarity. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
coderabbitai[bot] commented 2025-06-29 17:31:15 +10:00 (Migrated from github.com)

Caution

Review failed

The pull request is closed.

Walkthrough

This update restructures the Neovim configuration by removing legacy installation scripts and modularizing the Lua configuration. It introduces new utility and plugin management modules, consolidates and expands plugin configurations, and streamlines setup and formatting logic. Several plugins and scripts are removed or replaced, and configuration is now more centralized and version-aware.

Changes

File(s) Change Summary
.github/workflows/release.yml Added a scheduled and manual GitHub Actions workflow for monthly prerelease creation with date-based tags and release notes.
README.md Simplified and restructured dependencies section, removing detailed installation instructions and lists; now references NixOS configuration management.
installers/unix/.install, installers/windows/.bat Deleted all Unix and Windows installation scripts for Neovim, lazygit, ripgrep, and GitHub CLI.
lua/config/init.lua, lua/config/lazy.lua, lua/config/options.lua Added new core configuration modules: main setup, lazy.nvim bootstrapper, and expanded options with version-aware and feature-rich settings.
lua/config/autocmds.lua Changed yank highlight callback from vim.highlight.on_yank() to vim.hl.on_yank().
lua/configuration.lua, lua/config/keymappings.lua, lua/init.lua Deleted legacy configuration, keymapping, and initialization modules.
lua/plugins/colorscheme.lua, lua/plugins/dashboard.lua, lua/plugins/editor.lua, Added new plugin modules for colorscheme, dashboard, and editor enhancements.
lua/plugins/formatting.lua, lua/plugins/lspconfig.lua, lua/plugins/ui.lua, Added new plugin modules for formatting, LSP config, and UI enhancements.
lua/plugins/explorer.lua Replaced detailed nvim-tree explorer config with minimal snacks.nvim explorer setup and new keybinding.
lua/plugins/completions.lua Simplified and consolidated completion plugin configuration, changed sources, and updated dependencies.
lua/plugins/treesitter.lua Expanded and restructured Treesitter and related plugin configuration, added new plugins and keybindings, and introduced conditional behavior.
lua/plugins/git.lua Split and restructured git plugin configuration, added lazygit integration, removed some dependencies and keybindings.
lua/plugins/init.lua Changed plugin list to include Sentinel initialization and snacks.nvim setup, updated version check and exit logic.
lua/plugins/util.lua Added new utility plugin module for scratch buffers, session management, floating terminal, and utility library.
lua/plugins/keybindings.lua, lua/plugins/lsp.lua, lua/plugins/markdown.lua, Deleted plugin configuration modules for which-key, LSP, markdown preview, miscellaneous, telescope, terminal, and theme.
lua/plugins/miscellaneous.lua, lua/plugins/telescope.lua, lua/plugins/terminal.lua,
lua/plugins/theme.lua
lua/util/colorscheme.lua, lua/util/format.lua, lua/util/init.lua Added new utility modules for colorscheme management, formatting, and general utilities (plugin state, OS detection, event handling, notification management).
lua/util/misc.lua, lua/util/plugins.lua Deleted legacy utility modules for miscellaneous helpers and plugin management.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant Neovim
    participant config/init.lua
    participant config/lazy.lua
    participant lazy.nvim
    participant plugins/init.lua
    participant Sentinel
    participant util/init.lua

    User->>Neovim: Start Neovim
    Neovim->>config/lazy.lua: Call setup(opts)
    config/lazy.lua->>lazy.nvim: Bootstrap and setup plugin manager
    lazy.nvim->>plugins/init.lua: Load plugin specifications
    plugins/init.lua->>Sentinel: Call Sentinel.init()
    Sentinel->>config/init.lua: Setup configuration (options, autocommands, etc.)
    config/init.lua->>util/init.lua: Use utility functions as needed
    Sentinel->>Neovim: Neovim ready with configured plugins and settings

Poem

Hop, hop, a fresh new start,
Old scripts gone, new configs smart!
Plugins gathered, neat and small,
Sentinel listens for every call.
Colors bloom and buffers format,
The dashboard greets—how about that?
A rabbit's joy: clean code at last! 🐇


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Free

📥 Commits

Reviewing files that changed from the base of the PR and between 1ec5d1c4b8 and 044ccf2f03.

📒 Files selected for processing (41)
  • .github/workflows/release.yml (1 hunks)
  • README.md (1 hunks)
  • init.lua (1 hunks)
  • installers/unix/gh.install (0 hunks)
  • installers/unix/lazygit.install (0 hunks)
  • installers/unix/neovim.install (0 hunks)
  • installers/windows/lazygit.bat (0 hunks)
  • installers/windows/neovim.bat (0 hunks)
  • installers/windows/rg.bat (0 hunks)
  • lua/config/autocmds.lua (1 hunks)
  • lua/config/init.lua (1 hunks)
  • lua/config/keymappings.lua (0 hunks)
  • lua/config/lazy.lua (1 hunks)
  • lua/config/options.lua (1 hunks)
  • lua/configuration.lua (0 hunks)
  • lua/init.lua (0 hunks)
  • lua/plugins/ai.lua (0 hunks)
  • lua/plugins/colorscheme.lua (1 hunks)
  • lua/plugins/completions.lua (1 hunks)
  • lua/plugins/dashboard.lua (1 hunks)
  • lua/plugins/editor.lua (1 hunks)
  • lua/plugins/explorer.lua (1 hunks)
  • lua/plugins/formatting.lua (1 hunks)
  • lua/plugins/git.lua (1 hunks)
  • lua/plugins/init.lua (1 hunks)
  • lua/plugins/keybindings.lua (0 hunks)
  • lua/plugins/lsp.lua (0 hunks)
  • lua/plugins/lspconfig.lua (1 hunks)
  • lua/plugins/markdown.lua (0 hunks)
  • lua/plugins/miscellaneous.lua (0 hunks)
  • lua/plugins/telescope.lua (0 hunks)
  • lua/plugins/terminal.lua (0 hunks)
  • lua/plugins/theme.lua (0 hunks)
  • lua/plugins/treesitter.lua (1 hunks)
  • lua/plugins/ui.lua (1 hunks)
  • lua/plugins/util.lua (1 hunks)
  • lua/util/colorscheme.lua (1 hunks)
  • lua/util/format.lua (1 hunks)
  • lua/util/init.lua (1 hunks)
  • lua/util/misc.lua (0 hunks)
  • lua/util/plugins.lua (0 hunks)

Note

🎁 Summarized by CodeRabbit Free

Your organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting https://app.coderabbit.ai/login.

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Join our Discord community for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.
<!-- This is an auto-generated comment: summarize by coderabbit.ai --> <!-- This is an auto-generated comment: failure by coderabbit.ai --> > [!CAUTION] > ## Review failed > > The pull request is closed. <!-- end of auto-generated comment: failure by coderabbit.ai --> <!-- walkthrough_start --> ## Walkthrough This update restructures the Neovim configuration by removing legacy installation scripts and modularizing the Lua configuration. It introduces new utility and plugin management modules, consolidates and expands plugin configurations, and streamlines setup and formatting logic. Several plugins and scripts are removed or replaced, and configuration is now more centralized and version-aware. ## Changes | File(s) | Change Summary | |-----------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | .github/workflows/release.yml | Added a scheduled and manual GitHub Actions workflow for monthly prerelease creation with date-based tags and release notes. | | README.md | Simplified and restructured dependencies section, removing detailed installation instructions and lists; now references NixOS configuration management. | | installers/unix/*.install, installers/windows/*.bat | Deleted all Unix and Windows installation scripts for Neovim, lazygit, ripgrep, and GitHub CLI. | | lua/config/init.lua, lua/config/lazy.lua, lua/config/options.lua | Added new core configuration modules: main setup, lazy.nvim bootstrapper, and expanded options with version-aware and feature-rich settings. | | lua/config/autocmds.lua | Changed yank highlight callback from `vim.highlight.on_yank()` to `vim.hl.on_yank()`. | | lua/configuration.lua, lua/config/keymappings.lua, lua/init.lua | Deleted legacy configuration, keymapping, and initialization modules. | | lua/plugins/colorscheme.lua, lua/plugins/dashboard.lua, lua/plugins/editor.lua, | Added new plugin modules for colorscheme, dashboard, and editor enhancements. | | lua/plugins/formatting.lua, lua/plugins/lspconfig.lua, lua/plugins/ui.lua, | Added new plugin modules for formatting, LSP config, and UI enhancements. | | lua/plugins/explorer.lua | Replaced detailed nvim-tree explorer config with minimal snacks.nvim explorer setup and new keybinding. | | lua/plugins/completions.lua | Simplified and consolidated completion plugin configuration, changed sources, and updated dependencies. | | lua/plugins/treesitter.lua | Expanded and restructured Treesitter and related plugin configuration, added new plugins and keybindings, and introduced conditional behavior. | | lua/plugins/git.lua | Split and restructured git plugin configuration, added lazygit integration, removed some dependencies and keybindings. | | lua/plugins/init.lua | Changed plugin list to include Sentinel initialization and snacks.nvim setup, updated version check and exit logic. | | lua/plugins/util.lua | Added new utility plugin module for scratch buffers, session management, floating terminal, and utility library. | | lua/plugins/keybindings.lua, lua/plugins/lsp.lua, lua/plugins/markdown.lua, | Deleted plugin configuration modules for which-key, LSP, markdown preview, miscellaneous, telescope, terminal, and theme. | | lua/plugins/miscellaneous.lua, lua/plugins/telescope.lua, lua/plugins/terminal.lua, | | | lua/plugins/theme.lua | | | lua/util/colorscheme.lua, lua/util/format.lua, lua/util/init.lua | Added new utility modules for colorscheme management, formatting, and general utilities (plugin state, OS detection, event handling, notification management). | | lua/util/misc.lua, lua/util/plugins.lua | Deleted legacy utility modules for miscellaneous helpers and plugin management. | ## Sequence Diagram(s) ```mermaid sequenceDiagram participant User participant Neovim participant config/init.lua participant config/lazy.lua participant lazy.nvim participant plugins/init.lua participant Sentinel participant util/init.lua User->>Neovim: Start Neovim Neovim->>config/lazy.lua: Call setup(opts) config/lazy.lua->>lazy.nvim: Bootstrap and setup plugin manager lazy.nvim->>plugins/init.lua: Load plugin specifications plugins/init.lua->>Sentinel: Call Sentinel.init() Sentinel->>config/init.lua: Setup configuration (options, autocommands, etc.) config/init.lua->>util/init.lua: Use utility functions as needed Sentinel->>Neovim: Neovim ready with configured plugins and settings ``` ## Poem > Hop, hop, a fresh new start, > Old scripts gone, new configs smart! > Plugins gathered, neat and small, > Sentinel listens for every call. > Colors bloom and buffers format, > The dashboard greets—how about that? > A rabbit's joy: clean code at last! 🐇✨ <!-- walkthrough_end --> <!-- internal state start --> <!-- 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 --> <!-- internal state end --> --- <details> <summary>📜 Recent review details</summary> **Configuration used: CodeRabbit UI** **Review profile: CHILL** **Plan: Free** <details> <summary>📥 Commits</summary> Reviewing files that changed from the base of the PR and between 1ec5d1c4b82811988b49b624b299e64d299aa728 and 044ccf2f03db64899fa612ae80b70d27c7b41ba9. </details> <details> <summary>📒 Files selected for processing (41)</summary> * `.github/workflows/release.yml` (1 hunks) * `README.md` (1 hunks) * `init.lua` (1 hunks) * `installers/unix/gh.install` (0 hunks) * `installers/unix/lazygit.install` (0 hunks) * `installers/unix/neovim.install` (0 hunks) * `installers/windows/lazygit.bat` (0 hunks) * `installers/windows/neovim.bat` (0 hunks) * `installers/windows/rg.bat` (0 hunks) * `lua/config/autocmds.lua` (1 hunks) * `lua/config/init.lua` (1 hunks) * `lua/config/keymappings.lua` (0 hunks) * `lua/config/lazy.lua` (1 hunks) * `lua/config/options.lua` (1 hunks) * `lua/configuration.lua` (0 hunks) * `lua/init.lua` (0 hunks) * `lua/plugins/ai.lua` (0 hunks) * `lua/plugins/colorscheme.lua` (1 hunks) * `lua/plugins/completions.lua` (1 hunks) * `lua/plugins/dashboard.lua` (1 hunks) * `lua/plugins/editor.lua` (1 hunks) * `lua/plugins/explorer.lua` (1 hunks) * `lua/plugins/formatting.lua` (1 hunks) * `lua/plugins/git.lua` (1 hunks) * `lua/plugins/init.lua` (1 hunks) * `lua/plugins/keybindings.lua` (0 hunks) * `lua/plugins/lsp.lua` (0 hunks) * `lua/plugins/lspconfig.lua` (1 hunks) * `lua/plugins/markdown.lua` (0 hunks) * `lua/plugins/miscellaneous.lua` (0 hunks) * `lua/plugins/telescope.lua` (0 hunks) * `lua/plugins/terminal.lua` (0 hunks) * `lua/plugins/theme.lua` (0 hunks) * `lua/plugins/treesitter.lua` (1 hunks) * `lua/plugins/ui.lua` (1 hunks) * `lua/plugins/util.lua` (1 hunks) * `lua/util/colorscheme.lua` (1 hunks) * `lua/util/format.lua` (1 hunks) * `lua/util/init.lua` (1 hunks) * `lua/util/misc.lua` (0 hunks) * `lua/util/plugins.lua` (0 hunks) </details> </details> <!-- tips_start --> --- > [!NOTE] > <details> > <summary>🎁 Summarized by CodeRabbit Free</summary> > > Your organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting <https://app.coderabbit.ai/login>. > > </details> <details> <summary>🪧 Tips</summary> ### Chat There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=Kruziikrel13/sentinel.nvim&utm_content=37): - Review comments: Directly reply to a review comment made by CodeRabbit. Example: - `I pushed a fix in commit <commit_id>, please review it.` - `Explain this complex logic.` - `Open a follow-up GitHub issue for this discussion.` - Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples: - `@coderabbitai explain this code block.` - `@coderabbitai modularize this function.` - PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples: - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.` - `@coderabbitai read src/utils.ts and explain its main purpose.` - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.` - `@coderabbitai help me debug CodeRabbit configuration file.` ### Support Need help? Join our [Discord community](https://discord.gg/coderabbit) for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. ### CodeRabbit Commands (Invoked using PR comments) - `@coderabbitai pause` to pause the reviews on a PR. - `@coderabbitai resume` to resume the paused reviews. - `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository. - `@coderabbitai full review` to do a full review from scratch and review all the files again. - `@coderabbitai summary` to regenerate the summary of the PR. - `@coderabbitai generate sequence diagram` to generate a sequence diagram of the changes in this PR. - `@coderabbitai resolve` resolve all the CodeRabbit review comments. - `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository. - `@coderabbitai help` to get help. ### Other keywords and placeholders - Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed. - Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description. - Add `@coderabbitai` anywhere in the PR title to generate the title automatically. ### CodeRabbit Configuration File (`.coderabbit.yaml`) - You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository. - Please see the [configuration documentation](https://docs.coderabbit.ai/guides/configure-coderabbit) for more information. - If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json` ### Documentation and Community - Visit our [Documentation](https://docs.coderabbit.ai) for detailed information on how to use CodeRabbit. - Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback. - Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements. </details> <!-- tips_end -->
copilot-pull-request-reviewer[bot] (Migrated from github.com) reviewed 2025-06-29 17:31:41 +10:00
copilot-pull-request-reviewer[bot] (Migrated from github.com) left a comment

Pull Request Overview

This pull request simplifies the Neovim configuration while aiming to improve startup time. Key changes include the removal of several legacy utility and plugin files, consolidation of plugin initialization via lazy-loading, and refactoring of key configuration and options files.

Reviewed Changes

Copilot reviewed 41 out of 41 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
lua/util/plugins.lua Removed unused plugin utility functions
lua/util/misc.lua Removed several miscellaneous utility functions
lua/util/init.lua Refactored initialization to integrate lazy setup
lua/plugins/* Various plugin modules were restructured or removed to simplify config
lua/config/* & installers/* Updated and streamlined global and system-specific configuration
README.md Updated dependency documentation and installation guidance
Comments suppressed due to low confidence (6)

lua/plugins/init.lua:2

  • [nitpick] Using vim.cmd(quit) to exit on Neovim version check instead of os.exit may leave the runtime in an inconsistent state; consider reverting to a more conventional process exit.
if vim.fn.has("nvim-0.11.0") == 0 then

lua/plugins/completions.lua:8

  • The removal of 'copilot' from the default completion providers may affect users who rely on AI-assisted completions; verify that this change is intentional.
      default = { "lazydev", "lsp", "path", "snippets", "buffer" },

lua/plugins/explorer.lua:9

  • [nitpick] The key mapping using 't' for toggling the file explorer may be too generic and could lead to conflicts with other mappings; consider using a more distinctive key combination.
    end, { desc = 'File Explorer' } }

README.md:3

  • [nitpick] The updated dependency section in README.md is brief; it would be beneficial to provide more detailed mapping of dependencies and step‐by‐step installation guidance.
Dependencies need to be mapped and install process documented.
## Pull Request Overview This pull request simplifies the Neovim configuration while aiming to improve startup time. Key changes include the removal of several legacy utility and plugin files, consolidation of plugin initialization via lazy-loading, and refactoring of key configuration and options files. ### Reviewed Changes Copilot reviewed 41 out of 41 changed files in this pull request and generated 1 comment. <details> <summary>Show a summary per file</summary> | File | Description | | --------------------------------------- | ------------------------------------------------------------------- | | lua/util/plugins.lua | Removed unused plugin utility functions | | lua/util/misc.lua | Removed several miscellaneous utility functions | | lua/util/init.lua | Refactored initialization to integrate lazy setup | | lua/plugins/* | Various plugin modules were restructured or removed to simplify config| | lua/config/* & installers/* | Updated and streamlined global and system-specific configuration | | README.md | Updated dependency documentation and installation guidance | </details> <details> <summary>Comments suppressed due to low confidence (6)</summary> **lua/plugins/init.lua:2** * [nitpick] Using vim.cmd([[quit]]) to exit on Neovim version check instead of os.exit may leave the runtime in an inconsistent state; consider reverting to a more conventional process exit. ``` if vim.fn.has("nvim-0.11.0") == 0 then ``` **lua/plugins/completions.lua:8** * The removal of 'copilot' from the default completion providers may affect users who rely on AI-assisted completions; verify that this change is intentional. ``` default = { "lazydev", "lsp", "path", "snippets", "buffer" }, ``` **lua/plugins/explorer.lua:9** * [nitpick] The key mapping using 't' for toggling the file explorer may be too generic and could lead to conflicts with other mappings; consider using a more distinctive key combination. ``` end, { desc = 'File Explorer' } } ``` **README.md:3** * [nitpick] The updated dependency section in README.md is brief; it would be beneficial to provide more detailed mapping of dependencies and step‐by‐step installation guidance. ``` Dependencies need to be mapped and install process documented. ``` </details>
@ -33,3 +1,1 @@
vim.opt.hlsearch = false
vim.opt.ignorecase = true
vim.opt.termguicolors = true
vim.g.mapleader = ' '
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2025-06-29 17:31:41 +10:00

[nitpick] The softtabstop setting is commented out while tabstop and shiftwidth are configured; consider setting softtabstop explicitly to maintain consistent indentation behavior.

opt.softtabstop = 2 -- Number of spaces tabs count for when editing
[nitpick] The softtabstop setting is commented out while tabstop and shiftwidth are configured; consider setting softtabstop explicitly to maintain consistent indentation behavior. ```suggestion opt.softtabstop = 2 -- Number of spaces tabs count for when editing ```
copilot-pull-request-reviewer[bot] (Migrated from github.com) reviewed 2025-06-29 17:32:18 +10:00
copilot-pull-request-reviewer[bot] (Migrated from github.com) left a comment

Pull Request Overview

This PR primarily simplifies the Neovim configuration to improve startup performance by removing legacy modules and consolidating plugin configurations. Key changes include the removal of multiple utility and plugin spec files, the reorganization of lazy-loading configurations, and updates to key plugin setups and documentation.

Reviewed Changes

Copilot reviewed 41 out of 41 changed files in this pull request and generated no comments.

Show a summary per file
File Description
lua/util/plugins.lua Removed old plugin utilities
lua/util/misc.lua Removed miscellaneous utility functions
lua/util/init.lua Introduced new utility initialization and lazy-loading
lua/plugins/* and lua/config/* Updated/restructured plugin and configuration definitions
README.md Updated documentation regarding dependencies
installers/* Removed obsolete installation scripts
init.lua Transitioned to using the new lazy setup mechanism
Comments suppressed due to low confidence (1)

lua/config/autocmds.lua:12

  • The function call 'vim.hl.on_yank()' is non-standard; it was previously 'vim.highlight.on_yank()'. Verify if 'vim.hl.on_yank()' is defined elsewhere or revert to the correct API call.
    vim.hl.on_yank()
## Pull Request Overview This PR primarily simplifies the Neovim configuration to improve startup performance by removing legacy modules and consolidating plugin configurations. Key changes include the removal of multiple utility and plugin spec files, the reorganization of lazy-loading configurations, and updates to key plugin setups and documentation. ### Reviewed Changes Copilot reviewed 41 out of 41 changed files in this pull request and generated no comments. <details> <summary>Show a summary per file</summary> | File | Description | | ------------------------------------- | -------------------------------------------------------- | | lua/util/plugins.lua | Removed old plugin utilities | | lua/util/misc.lua | Removed miscellaneous utility functions | | lua/util/init.lua | Introduced new utility initialization and lazy-loading | | lua/plugins/* and lua/config/* | Updated/restructured plugin and configuration definitions| | README.md | Updated documentation regarding dependencies | | installers/* | Removed obsolete installation scripts | | init.lua | Transitioned to using the new lazy setup mechanism | </details> <details> <summary>Comments suppressed due to low confidence (1)</summary> **lua/config/autocmds.lua:12** * The function call 'vim.hl.on_yank()' is non-standard; it was previously 'vim.highlight.on_yank()'. Verify if 'vim.hl.on_yank()' is defined elsewhere or revert to the correct API call. ``` vim.hl.on_yank() ``` </details>
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
kruziikrel13/sentinel.nvim!37
No description provided.