Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

End of year update #74

Merged
merged 153 commits into from
Dec 30, 2024
Merged

End of year update #74

merged 153 commits into from
Dec 30, 2024

Conversation

daephx
Copy link
Owner

@daephx daephx commented Dec 30, 2024

Includes many changes from local develop branch.

daephx added 30 commits August 2, 2024 03:27
- Updated header comments to better describe the module purpose.
- Ensure consistent comment formatting.
- Improve comment annotations:
  - `is_available`: Add details about `colors_name` parameter.
  - `get_hl`: Improve `name` parameter description.
  - `extend_hl`: Clarify `group` and `tbl` parameters.
  - `set_hl`: Detail `colors` parameter (table/function types).
  - `set_hl_autocmd`: Describe `name` and `colors` parameters.
  - `load`: Clarify `name` parameter role in loading colorschemes.
- Specify foldopen options to control which commands open folds
- Disable fold opening for block jumps

Allows navigation of folded text without folds unexpectedly opening and
jumping into folded regions, which can be disorienting.
By removing our custom foldtext function located in `lua/config/util`
and setting the option `vim.opt.foldtext` to an empty string, internally
neovim will handle highlighting the folded region for us using the
already present treesitter highlights.

After the revert/removal of the `vim.treesitter.foldtext()` function in
neovim core, another option was added to allow similar but limited
functionality by setting the foldtext option to that of an empty string,
since that value would be otherwise invalid anyway.

More work needs to be done to proved a more robust folding system.
Many people will utilize plugins like ufo.nvim but I wish to have the
most simple implementation until better support is provided by neovim
core.
The `color_overrides` in the vscode theme previously set the fold
background to a custom gray tone. This commit removes the custom color
definition, reverting to the default color provided by the plugin.
There are a lot of nice features in nvim-tree but over time I find
myself using the file tree less and less as I am more accustomed to
fuzzy finding. But for the odd cases where I need to navigate/modify the
directory structure, oil just seems far more intuitive to work with!
Updated the list of file types to bypass session saving by adding 'oil'.
Previously, only 'dashboard' was excluded from session save.
Add 'oil' to the list of recognized windows in lualine configuration.
This ensures the Oil buffer is properly displayed.
- `set_hl_autocmd` now supports all colorschemes if `name` is `nil` or "*".
- Added cache to manage highlight definitions across multiple colorschemes.
- Refine luadoc comments to clarify the optional name parameter usage.
- Added autocmd to apply highlights for satellite.nvim on ColorScheme change.
- Added default highlight for SatelliteBar with links to 'Pmenu'.
- Disable 'winblend' to prevent black background due to a known Neovim core bug.
- Added `@module` annotation for `toggleterm`.
- Reformatted comments for `size`, `on_open`, and `on_close` callbacks.
- Added type hints to `terminals` table.
- Enhanced overall documentation consistency and clarity.
Partially revert the previous commit to add the leader prefix back to
the toggleterm keymaps. Using the leader prefix improves consistency
and prevents accidental triggering when yanking text.
The "willothy/flatten.nvim" plugin was non-functional with lazy-loading
enabled. Disabling lazy-loading, as recommended in the plugin
documentation, prevents nested instances when opening files from
terminal buffers with `nvim path/to/file`.

This change ensures the plugin works as intended.
The `b` section of the lualine vscode theme used the default foreground
color instead of the mode color for terminal buffers. This commit fixes
the issue by changing the foreground color to the correct terminal mode
color.
Update return type annotation in `insert_string` function to use
`fun(): string` for better type accuracy.
- Removed deprecated and unused settings.
- Added default keymaps to the lazy plugin spec.
- Added comments for plugin dependencies.
- Included `@module` for proper type definitions with `lazydev/lua-ls`.
- Disabled auto-focus; now requires manual selection or Enter key.
- Disabled status column in trouble buffers.
- Ensured user-defined window border is applied correctly.
- Moved buffer autocmd to the lazy spec initialization function.
Add commands to lazy plugin spec for todo-comments:
- "TodoLocList", "TodoQuickFix", "TodoTelescope", "TodoTrouble"
- Ensures plugin loads on command execution, handling edge cases like
  opening todo-comments buffers from the dashboard.
- Added common alternatives to close the prompt with "qq" and "jk".
- Disabled "<C-m>" to prevent accidental actions.
- Enabled "<C-u>" to clear the search prompt.
- Updated "<Tab>" and "<S-Tab>" for simple navigation instead of multi-select.
- Added extra keybindings for preview navigation:
  - "<C-Up>", "<C-Down>", "<C-Left>", "<C-Right>"
  - "<C-PageUp>", "<C-PageDown>", "<C-b>"
Change selection_strategy from 'row' to 'reset'. This allows users to
change their query without needing to find the current selection, as
'reset' places the selection cursor at the top of the results.
Remove configuration for previewers and sorters. These settings match
the plugin's default config, making them redundant.
This commit adds a diagnostic label to the keymap `<leader>x` in the
which-key plugin, following the recommended keymaps from
`folke/trouble.nvim`.

No builtin keymaps utilize the `<leader>x` pattern, so the group is
named "Diagnostics". This label helps organize and identify keymaps with
similar signatures.
Disable "matchit" plugin in lazy.nvim config to improve startup time.
Add support for TODO comments with optional scopes, typically
used to associate an author with the comment.
Example: `-- TODO(username): my todo description`.
Recent versions of Ruff include a built-in LSP implementation via the
`ruff server` command. This replaces the previously used `ruff_lsp`
project, which was a separate wrapper for Ruff with an LSP interface.

- Replaced ruff_lsp with ruff in mason ensure_installed
- Added server settings for ruff
- Added autocmd to disable ruff hover capabilities
  This allows pyright to provide hover capabilities but perhaps we could
  make this dependent on if pyright is available/configured or attached
  to the buffer? The latter possibly depending on lsp load order.
Extend `html`, `markdown`, and `plain` filetypes to include the `loremipsum`
snippet group. This allows for lorem sentences and paragraphs from the
friendly-snippets plugin to be available as snippets in these filetypes.
The `checktime` command should not run on buffers with the `nofile`
type. This update ensures `checktime` is only executed on applicable
buffers when focus changes or terminal events occur.

- Use a callback function to conditionally execute `checktime`.
Ensure the currently active tab is restored when resizing windows on the
VimResized event. The `tabdo` command cycles through all tabs and runs
the provided command, but it does not return to the original tab
afterwards.

- Save the current tab before running `tabdo`
- Restore the saved tab after resizing splits

Thanks to the folke/LazyVim project on GitHub for the original code.
The `vim.version().prerelease` value was not set for stable releases.
By checking against a nil value instead of an expected string,
the version release table will now correctly classify the release as
stable or nightly.
Reworked LSP keymaps with updated bindings and reorganization for clarity.
Some keymaps were modified or removed, while new ones were added.

Added compatibility handling for Neovim 0.11+ to prevent errors when
switching between stable (0.10.2) and nightly (0.11) versions. This will
be removed once stable packages are updated.
Reordered cmdline sources to prioritize path and `nvim_lua` suggestions
over cmdline results. This change reduces the noise in the completion
list, ensuring more relevant suggestions appear first.
Adapt local highlight overrides in ayu to reflect the recent upstream
change where `overrides` now merge with default definitions instead of
clearing them. Explicitly set `none` for specific groups attributes to
ensure transparency is applied.
This change is part of an ongoing effort to iteratively improve
highlight definitions for builtin colorschemes using `after/colors`
configuration utilities. It refines key highlight groups to enhance
visual consistency and compatibility.

Themes updated:
- blue
- darkblue
- default
- desert
- retrobox
- slate
- sorbet
- torte
- wildcharm
- zaibatsu

These updates improve readability, better differentiate UI components,
and ensure a consistent appearance across terminal and GUI environments.
Reworked highlight overrides for the ayu colorscheme to better support
its light mode variant. Focused on using palette variables to avoid
hardcoded values and added conditional light mode-specific adjustments
to prevent clashes caused by dark mode-centric definitions.

Key updates include:
- Adjusted `Folded`, `LineNr`, and `DiffDelete` for better readability.
- Improved adaptability with palette-driven overrides.
- Enhanced consistency across light and dark variants.

This ensures balanced visuals for both modes while respecting ayu's design.
Reworked highlight definitions for the material colorscheme to improve
visual consistency. Key updates include:

- Linked `FoldColumn` to `NonText` and updated `Folded` background.
- Refined `Search` and `IncSearch` colors for better visibility.
- Adjusted `WinBar`, `StatusLine`, and `VertSplit` to have no background.
- Corrected Treesitter overrides, including `@string.special.url`.
- Removed theme plugin for `nvim-tree`.

These changes enhance theme clarity and consistency.
Updated highlight definitions for the rose-pine colorscheme, including:

- Set `StatusLine`, `WinBar`, and `WinBarNC` backgrounds to `none`.
- Reworked `Diff` highlights for better color clarity.
- Added custom Git colors for `Added`, `Changed`, and `Removed`.
- Refined Neogit highlights, including `NeogitActiveItem` and `NeogitGraphAuthor`.
- Removed Rainbow Delimiters and replaced with specific Neogit diffs.
- Improved LSP and DAP support with specific highlight updates.

These changes improve visual clarity and consistency across the theme.
- Updated Telescope Selection to use `vscSelection` default highlight.
- Enhanced `NeogitCommitViewHeader` with `vscContext` background and bold.
- Adjusted `HopUnmatched` to use `vscContext` for improved visibility.

These changes improve consistency and clarity in the vscode theme.
- Adjusted `MsgSeparator`, `VertSplit`, and `SignColumn` for clarity.
- Linked git highlights (`Added`, `Changed`, `Removed`) to relevant colors.
- Improved contrast for diff highlights (`DiffAdd`, `DiffChange`).
- `TelescopeSelection` now links to `CursorLine`.

Support for `background = light` is functional but limited due to
override configuration issues. A future update will address git and diff
color contrast.
- Updated `zk-nvim` plugin to load on command execution (`cmd`) rather
  than on the `VeryLazy` event.
- This ensures `zk` is only loaded when the user explicitly invokes any
  of the assigned commands, improving startup performance.
- Added documentation comments for better clarity and type definitions.
- Renamed `applications` to `executables`, for list of binary cmds.
- Removed non-standard plugin options to avoid healthcheck warnings.
- Removed custom terminal layout configurations in favor of built-in
  floating or tab terminals.
- Disabled default key mappings in the rebase buffer to allow normal Vim
  editing operations for rebase commands, similar to Fugitive.
- Link NeogitCommitViewDescription to Normal to remove background.
- Align NeogitDiffAdditions and NeogitDiffDeletions with Added/Removed.
- Apply DiffviewFilePanelInsertions and DiffviewFilePanelDeletions
  to match Added/Removed for Diffview integration.
Restore the sign priority helper function to address issues caused by
differences between Neovim stable (0.10.3) and nightly (0.11). These
inconsistencies result in gitsigns, todos, and diagnostic signs not
appearing in the expected order.

This fix ensures gitsigns always occupy the leftmost position in the
sign column when the column width is >= 2, preserving visual consistency
and expected behavior.
- Sort `buf_options` and `win_options` tables alphabetically
- Disable `signcolumn` and `statuscolumn` in oil windows
- Increase `max_width` for oil float windows
- Add `min_width` for oil preview windows
- Add ability to toggle file details like permissions, size, and
  modification time in the oil buffer using the `gd` keymap.
- Apply custom highlights to file permissions for improved clarity.
- Update keymap description for `<leader>e`.
- Remove `.` from the `Oil` command to open relative to the active
  buffer instead of the working directory.
- Allow `Oil` to open automatically when Neovim is launched with a
  directory argument (e.g., `nvim .`).
- Use an `UIEnter` autocmd to handle lazy-loaded initialization.
- Add `Fexplore` for floating window file explorer.
- Update `cmd` table to enable lazy-loading via Lazy.nvim.
- Refactor custom command definitions using `cmd_opts`.
- Map `<C-b>` and `<C-d>` to scroll the preview up and down.
- Map `<M-p>` to toggle the preview window.
- Enhance descriptions for `nvim-web-devicons` and setup options.
- Add type annotation for the `opts` table.
- Refine module header and plugin dependency comments.
- Annotate `on_open` function with parameter type.
- Clarify excluded `filetypes` and `buftypes` with comments.
- Skip custom LSP handlers in Neovim 0.11 and newer.
- Retain support for Neovim 0.10 with custom hover and signature help handlers.
- Comment out and remove broken "goto definition" handler for split window.
  - This feature doesn't function as expected and may be revisited later.
- Upgrade `actions/checkout` to v4 in both `stylua` and `selene` jobs.
- Update `JohnnyMorganz/stylua-action` to v4.
  - Bump Stylua version to v2.0.2.
- Update `NTBBloodbath/selene-action` to v1.0.0.
  - Bump Selene version to v0.27.1.
@daephx daephx merged commit 24641bb into main Dec 30, 2024
2 checks passed
@daephx daephx deleted the develop branch December 30, 2024 15:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant