<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nvim-config/lua/dotfiles, branch master</title>
<subtitle>Neovim configuration</subtitle>
<id>http://git.tvcloud.fr/nvim-config/atom/lua/dotfiles?h=master</id>
<link rel='self' href='http://git.tvcloud.fr/nvim-config/atom/lua/dotfiles?h=master'/>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/nvim-config/'/>
<updated>2026-07-03T21:35:25Z</updated>
<entry>
<title>feat: rework buffer &amp; spell toggle commands and keymaps</title>
<updated>2026-07-03T21:35:25Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-07-03T21:35:25Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/nvim-config/commit/?id=d0170737823552eadcd9120e3dcfef85ba8923fc'/>
<id>urn:sha1:d0170737823552eadcd9120e3dcfef85ba8923fc</id>
<content type='text'>
Rename the toggle commands to consistent CamelCase: FormatToggle →
AutoFormatToggle, AutowriteToggle → AutoWriteToggle, AutoreloadToggle →
AutoReloadToggle; capitalize the AutoWrite/AutoReload feature names in
prose too.

Group the per-buffer toggles under &lt;Leader&gt;b: bs (save), bf (format),
br (reload), bw (wrap, was &lt;Leader&gt;w), bh (LSP hints, was &lt;Leader&gt;lh);
drop the &lt;C-s&gt; autosave map.
Group spelling under &lt;Leader&gt;s: ss (toggle), se/sf/sb (en/fr/en-fr).
Register every command and map in the General help category.
</content>
</entry>
<entry>
<title>feat(claude): floating session picker for the Bash monitor</title>
<updated>2026-07-03T16:11:28Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-07-03T16:11:28Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/nvim-config/commit/?id=99acd9830f22b9e61ba09a504df989d3ace8b63f'/>
<id>urn:sha1:99acd9830f22b9e61ba09a504df989d3ace8b63f</id>
<content type='text'>
Replace the cmdline-completion selector with a float listing the live
sessions, one per line, opening the picked session's Bash view on &lt;CR&gt;.
Simplify the session label to `started &lt;reltime&gt; │ &lt;id&gt; │ &lt;path&gt;`, both
columns fixed-width.
</content>
</entry>
<entry>
<title>feat(float): reusable floating-window engine</title>
<updated>2026-07-03T16:11:11Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-07-03T16:11:11Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/nvim-config/commit/?id=30ae42a71ef52991cd0bd076f3203b7af30440e6'/>
<id>urn:sha1:30ae42a71ef52991cd0bd076f3203b7af30440e6</id>
<content type='text'>
Add dotfiles.float: a centered, read-only floating window destroyed when
left or dismissed, with an optional on_select callback that makes it a
picker.
Open the cheatsheet through it, dropping the window and close-mapping
code that lived in plugin/50-help.lua.
</content>
</entry>
<entry>
<title>feat: group the cheatsheet by feature and scope commands to buffers</title>
<updated>2026-07-03T12:44:16Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-07-03T12:44:16Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/nvim-config/commit/?id=401b7585b4a27dd6e9d63e818b2505aedd082be0'/>
<id>urn:sha1:401b7585b4a27dd6e9d63e818b2505aedd082be0</id>
<content type='text'>
Break the single "Global" cheatsheet bucket into one section per
feature, and label buffer-local sections "&lt;feature&gt; (buffer-local)" so
each entry's scope is explicit. Drop the completion cursor-motion
entries.

Correct commands that were declared global but only act on the current
buffer, making them buffer-local:
- NotesRename and NotesRenameSection, created in init_notes_buffer.
- ClaudeBashHistory, ClaudeBashHistoryNext and ClaudeBashHistoryPrevious,
  created in the per-buffer init (set_monitor_keymaps renamed to
  init_monitor_buffer, which now sets commands too).
- MarkdownCheck and MarkdownUncheck, created from a new FileType
  markdown autocmd.

ClaudeBashMonitor stays global: it is the opener with session-name
completion and must be callable from any buffer.
</content>
</entry>
<entry>
<title>feat(help): declarative cheatsheet engine and floating window</title>
<updated>2026-07-03T11:34:46Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-07-03T11:34:46Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/nvim-config/commit/?id=79956264beb1d1dde959f164b011d4fc73d4916e'/>
<id>urn:sha1:79956264beb1d1dde959f164b011d4fc73d4916e</id>
<content type='text'>
Replace the treesitter source scan, ctags tagfile, and fzf-lua tag
picker with a `dotfiles.help` engine and a plain floating window.

The engine's `register(scope, spec)` records metadata only — it sets
no keymap or command — so a feature can declare its buffer-local maps
at load time and they are listed at startup regardless of what buffers
have been opened, and each entry carries a scope.

Features declare their user-facing maps and commands through
`help.register`; the float renders them grouped by scope, keymaps with
Vim's per-mode prefix and commands as `:Name`. `g?` and `:Cheatsheet`
open it; `q`, `&lt;Esc&gt;`, and `&lt;C-c&gt;` close it.
</content>
</entry>
<entry>
<title>feat(color): register highlight adjustments per colorscheme</title>
<updated>2026-07-02T22:02:53Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-07-02T17:48:25Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/nvim-config/commit/?id=fabd119eda7d182975a338b593d43ba55929386f'/>
<id>urn:sha1:fabd119eda7d182975a338b593d43ba55929386f</id>
<content type='text'>
Rework the color engine from a flat applier list into a registry keyed
by colorscheme name, so only the active scheme's adjustments run on a
theme change; register() now takes the colorscheme name.

In 50-ui.lua, split the highlight and statusline work into a per-scheme
bundle: solarized keeps its look, selenized gets its own, and selenized
becomes the default. The window bar and tabpage-title accents are read
from the active scheme's Function and String groups, so they follow both
the colorscheme and its light/dark 'background'. Rename :ColorsBgToggle
to :ThemeSwitch, which now reloads the colorscheme so its base groups
re-theme.
</content>
</entry>
<entry>
<title>refactor: hollow init.lua out into plugin files</title>
<updated>2026-07-02T15:27:28Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-07-02T15:27:28Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/nvim-config/commit/?id=20fa1dd3eb7a1e55c92968270da818f34896b9be'/>
<id>urn:sha1:20fa1dd3eb7a1e55c92968270da818f34896b9be</id>
<content type='text'>
Move everything but the bootstrap out of init.lua:
plugin/20-keymaps.lua takes the leader key and the misc keymaps,
loading before the 50-* features define their &lt;Leader&gt; maps;
plugin/50-cmdline.lua takes the command-line helpers;
the scrolling, arrow, and yank-highlight bindings join their features
(50-smooth_scroll, 50-autocompletion, 50-ui).

Flatten vim.g.dotfiles:
the augroup becomes vim.g.dotfiles_augroup,
and the textwidth table is dropped in favor of literal widths in the
ftplugins.
The markdown rendering loses its width coupling too,
keeping only a 60-column code-block minimum.
</content>
</entry>
<entry>
<title>refactor: fold multi-line comment stacks into block comments</title>
<updated>2026-07-02T14:40:11Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-07-02T14:40:11Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/nvim-config/commit/?id=bba6d0b25e8d23c64070615f37c6defd8872dcfe'/>
<id>urn:sha1:bba6d0b25e8d23c64070615f37c6defd8872dcfe</id>
<content type='text'>
Every stacked `--` comment becomes a `--[[ … ]]` block whose first
line stands alone as the fold summary.
Rename plugin/50-color.lua to plugin/50-ui.lua to match its scope
(highlights, statusline, window bar, tabline) and update references.
Type claude_bash_monitor's view state as an EmmyLua @class.
</content>
</entry>
<entry>
<title>feat(claude): monitor a Claude session's Bash activity</title>
<updated>2026-07-02T11:22:13Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-07-01T18:14:36Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/nvim-config/commit/?id=31b66e3e81e42c0e0e8d700d3f1072f9453c3236'/>
<id>urn:sha1:31b66e3e81e42c0e0e8d700d3f1072f9453c3236</id>
<content type='text'>
Add :ClaudeBashMonitor and listeners that follow each Claude Code
session's shell calls in its own two-pane view:
the command on top (bash-formatted, treesitter-highlighted,
soft-wrapped) and its output below, with ANSI colour codes rendered
as baleia.nvim highlights.
</content>
</entry>
<entry>
<title>docs: fix scheme-handler type annotation</title>
<updated>2026-07-01T14:31:05Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-07-01T14:31:05Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/nvim-config/commit/?id=ad9083239a474d53fd029e4c4aa2d07f81769777'/>
<id>urn:sha1:ad9083239a474d53fd029e4c4aa2d07f81769777</id>
<content type='text'>
An inline table type can't carry `resolve`'s two return values, so
LuaLS flagged the stray `string?`. Move the shape to a
`dotfiles.follow.SchemeHandler` class.
</content>
</entry>
</feed>
