Skip to content

feat: expose TabsVim_* public functions and ecosystem support#12

Merged
jesse23 merged 2 commits into
devfrom
feat/expose-functions
Apr 5, 2026
Merged

feat: expose TabsVim_* public functions and ecosystem support#12
jesse23 merged 2 commits into
devfrom
feat/expose-functions

Conversation

@jesse23
Copy link
Copy Markdown
Owner

@jesse23 jesse23 commented Apr 5, 2026

Summary

  • Remove all OOTB keybindings; expose all non-trivial operations as stable TabsVim_* public functions (ADR-004)
  • Add key-binding.md SPEC with public function API and ready-made vimrc wiring block
  • Add ecosystem support: TabsVim_FlogInTab() for vim-flog and g:tabs_vim_tabclose_types for configurable q:tabclose in tool buffers (ADR-005)
  • Add ecosystem-support.md SPEC

Test plan

  • Verify no keybindings installed by default after plugin load (:nmap shows no TabsVim maps)
  • Copy recommended vimrc block from key-binding.md and confirm all TabsVim_* functions work
  • Set g:tabs_vim_tabclose_types = ['floggraph', 'git', 'diff'] and confirm q closes tab in each buffer type
  • Confirm TabsVim_FlogInTab() opens flog in a new tab; confirm warning when vim-flog not loaded

…se_types

- Expose TabsVim_FlogInTab() for opening vim-flog in a new tab
- Add g:tabs_vim_tabclose_types config to auto-wire q → :tabclose for
  configurable buffer types (floggraph, git, diff and any FileType)
- Add ADR-005 and ecosystem-support SPEC
- Update key-binding SPEC with Git Integration section and vimrc wiring

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Exposes additional tab-aware “ecosystem” integration points for tabs.vim, adding a public vim-flog helper and an opt-in mechanism to map q to :tabclose in selected tool buffers, plus associated specs/ADR documentation.

Changes:

  • Add TabsVim_FlogInTab() public function (vim-flog integration).
  • Add opt-in g:tabs_vim_tabclose_types autocmd wiring for buffer-local q:tabclose for selected filetypes/conditions.
  • Add/update specs and ADR documentation for the new ecosystem support surface.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
plugin/tabs.vim Adds TabsVim_FlogInTab() and g:tabs_vim_tabclose_types-driven autocmd/mapping behavior.
docs/specs/tabs.vim.md Links the new ecosystem support spec from the main spec.
docs/specs/key-binding.md Documents the new public function and config in the recommended vimrc wiring.
docs/specs/ecosystem-support.md New spec describing vim-flog integration and configurable q:tabclose behavior.
docs/adrs/005.tabs-vim.ecosystem-support.md New ADR capturing the rationale/decision for ecosystem support features.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread plugin/tabs.vim Outdated
Comment thread plugin/tabs.vim Outdated
Comment thread plugin/tabs.vim Outdated
Comment thread docs/specs/ecosystem-support.md
- Validate g:tabs_vim_tabclose_types is a List before iterating
- Filter entries to non-empty strings; warn and skip on invalid type
- Sanitize FileType tokens against ^\h\w*$ to prevent ex-command injection
- Fix diff mapping to use <expr> so &diff is re-checked at keypress time
- Update docs: variable must be set before plug#end(), not after load

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@jesse23 jesse23 merged commit c9d6498 into dev Apr 5, 2026
@jesse23 jesse23 deleted the feat/expose-functions branch April 5, 2026 16:13
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.

2 participants