Skip to content

feat: add telescope.nvim integration for session selector - #7

Merged
ushmz merged 3 commits into
mainfrom
feat/telescope-session-selector
Nov 17, 2025
Merged

feat: add telescope.nvim integration for session selector#7
ushmz merged 3 commits into
mainfrom
feat/telescope-session-selector

Conversation

@ushmz

@ushmz ushmz commented Nov 17, 2025

Copy link
Copy Markdown
Owner

Summary

  • Implement full telescope.nvim session selector with custom picker, previewer, and configuration support
  • Add selector factory module to dynamically select selector backend based on ui.selector config option
  • Enable runtime switching between native, telescope, and float selectors without code changes

Changes

New Features

  • Telescope Session Selector (lua/tabi/ui/selector/telescope.lua)

    • Custom picker displaying session name, note count, date, and branch
    • Buffer previewer showing session details and note summaries with truncation
    • Support for ui.telescope.theme and ui.telescope.layout_config options
    • Graceful fallback with error notification when telescope.nvim is not available
  • Selector Factory (lua/tabi/ui/selector/init.lua)

    • Dynamic selector selection based on config.get().ui.selector
    • Fallback to native selector for invalid or nil configuration values

Configuration

require("tabi").setup({
  ui = {
    selector = "telescope", -- 'native', 'telescope', or 'float'
    telescope = {
      theme = "dropdown",  -- optional: telescope theme
      layout_config = {},   -- optional: layout configuration
    },
  },
})

Test plan

  • All 30 new tests pass (22 telescope selector + 8 factory tests)
  • All 307 total tests pass (no regression)
  • Luacheck passes with 0 warnings
  • Stylua formatting check passes
  • Manual testing: Run :Tabi retrace with ui.selector = "telescope" to verify telescope picker appears

🤖 Generated with Claude Code

Add full telescope.nvim integration for session selection with:
- Custom picker displaying session name, note count, date, and branch
- Buffer previewer showing session details and note summaries
- Support for theme and layout_config options from config
- Graceful fallback when telescope.nvim is not available

🤖 Generated with [Claude Code](https://claude.com/claude-code)
Introduce selector factory module that selects the appropriate
selector backend (native, telescope, or float) based on the
ui.selector configuration option.

This enables runtime switching between different session picker
implementations without code changes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
…ctory

Add 30 new tests covering:
- Telescope selector: basic functionality, picker creation, entry display,
  callback handling, configuration, and previewer (22 tests)
- Selector factory: selector selection based on config, fallback behavior,
  and runtime config changes (8 tests)

🤖 Generated with [Claude Code](https://claude.com/claude-code)
@ushmz
ushmz merged commit 6de9190 into main Nov 17, 2025
4 checks passed
@ushmz
ushmz deleted the feat/telescope-session-selector branch November 17, 2025 15:01
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