Skip to content

feat: add workspace list display command#54

Merged
phasetr merged 13 commits into
mainfrom
feat/workspace-list-display
Sep 8, 2025
Merged

feat: add workspace list display command#54
phasetr merged 13 commits into
mainfrom
feat/workspace-list-display

Conversation

@phasetr
Copy link
Copy Markdown
Owner

@phasetr phasetr commented Sep 8, 2025

Summary

  • Add a new command to display workspace list in a temporary buffer
  • Show associated project information with target directories

Implementation Plan

Display Information

Required:

  • Workspace name
  • Associated project name
  • Project alias
  • Target directories from enkan-repl-target-directories

Additional suggestions:

  • Current workspace indicator (active/inactive)
  • Number of active sessions in each workspace
  • Workspace creation timestamp
  • Last accessed timestamp
  • Buffer count per workspace
  • Window configuration/layout name

Command Features

  • Display in temporary buffer with special mode
  • Keybindings for quick workspace switching from list
  • Refresh capability to update the list
  • Sorting options (by name, last accessed, etc.)

Test plan

  • Create multiple workspaces with different projects
  • Verify all project information is correctly displayed
  • Test workspace switching from the list buffer
  • Verify target directories are properly associated
  • Test refresh functionality

🤖 Generated with Claude Code

This feature will display a list of all workspaces with:
- Associated project information (name and alias)
- Target directories from enkan-repl-target-directories
- Additional workspace metadata

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings September 8, 2025 22:22
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.

Copilot wasn't able to review any files in this pull request.


Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

phasetr and others added 12 commits September 9, 2025 07:42
- Add enkan-repl-workspace-list command to display all workspaces
- Show current workspace indicator and project information
- Display target directories and session counts
- Implement special mode with keybindings for workspace switching
- Add tests for list display functionality

Workspace list features:
- RET: Switch to workspace at point
- g: Refresh the list
- q: Quit the buffer
- Shows active/inactive status for each workspace

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
The error "Wrong type argument: listp" occurred because project-info
could be either a cons cell (project-name . project-path) or a string.
Now properly extract the directory path from the cons cell structure.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Remove unnecessary session counts and other verbose information.
Display only workspace ID, project name, and directory.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
…ectories

Fixed the condition check to use (stringp (cdr project-info)) instead of
(consp (cdr project-info)) to properly detect (project-name . path) format.
Now correctly displays both string values and path values.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
…y list

Show '<no project>' when no project is assigned to workspace,
and '<not found>' when project is assigned but not in target-directories.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- First try to find by alias (e.g., 'er', 'os')
- If not found, try to find by project name in target-directories
- Fix enkan-repl--get-project-path-from-directories to handle string values correctly
- Show '<not found>' when project exists but not in target-directories

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Remove incorrect lookup logic for 'eronly'/'ofonly' which are project config names,
not aliases. The current-project should contain the actual alias like 'er' or 'os'.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Stop reinventing the wheel and use the existing function that properly
handles project name -> aliases -> directories lookup chain.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Tests now use enkan-repl-projects for project config names
- Workspace :current-project contains project config name (not alias)
- Use enkan-repl--get-project-paths-for-current to resolve directories
- Remove unused project-aliases variable

All tests pass without warnings.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
When a project has multiple aliases (e.g., web-dev with er, pt, cc),
display all target directories separated by commas.

Added test case for multiple targets to ensure all paths are shown.
All 6 tests pass.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Use fixed-width format with consistent spacing:
- Active workspace:   '  ▶ 01 - ...'
- Inactive workspace: '    02 - ...'

This ensures all workspace IDs align properly regardless of selection status.
Added tests to verify proper alignment.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Update test expectations to match the user's preferred format:
- Active workspace: '▶ 01 - ...'
- Inactive workspace: '   02 - ...'

All 6 tests pass.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
@phasetr phasetr merged commit 7fc628e into main Sep 8, 2025
1 check passed
@phasetr phasetr deleted the feat/workspace-list-display branch September 8, 2025 23:29
github-actions Bot pushed a commit that referenced this pull request Sep 8, 2025
# [0.16.0](v0.15.10...v0.16.0) (2025-09-08)

### Features

* add workspace list display command ([#54](#54)) ([7fc628e](7fc628e))
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Sep 8, 2025

🎉 This PR is included in version 0.16.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants