Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/marianozunino/code
A CLI tool tailored for my personal development workflow. It simplifies navigation and launching of projects in Neovim while maintaining a most-recently-used (MRU) list. The tool is optimized for my specific setup, integrating with my preferred terminal emulator and window manager.
https://github.com/marianozunino/code
Last synced: about 6 hours ago
JSON representation
A CLI tool tailored for my personal development workflow. It simplifies navigation and launching of projects in Neovim while maintaining a most-recently-used (MRU) list. The tool is optimized for my specific setup, integrating with my preferred terminal emulator and window manager.
- Host: GitHub
- URL: https://github.com/marianozunino/code
- Owner: marianozunino
- License: mit
- Created: 2024-11-29T17:12:39.000Z (about 2 months ago)
- Default Branch: master
- Last Pushed: 2025-01-06T14:35:34.000Z (10 days ago)
- Last Synced: 2025-01-06T15:41:31.032Z (10 days ago)
- Language: Go
- Size: 8.8 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Code - Project Launcher for Development Directories
A CLI tool tailored for my personal development workflow. It simplifies navigation and launching of projects in Neovim while maintaining a most-recently-used (MRU) list. The tool is optimized for my specific setup, integrating with my preferred terminal emulator and window manager.
---
## Features
- 🔍 **Quick Project Navigation**: Fuzzy finding for rapid access.
- 📋 **MRU Tracking**: Keeps a history of recently accessed projects.
- 🛠️ **Neovim Integration**: Open projects directly in Neovim.
- 🖥️ **Window Manager Support**: Optimized for the Sway window manager.
- 🎨 **Customizable Selector Interface**: Tailored for flexibility in selection methods.
- 💻 **tmux Support**: Manage tmux sessions for projects.---
## Prerequisites
This tool is built around my workflow and assumes the following are installed:
- **Go** 1.23+
- **Sway** (window manager)
- **kitty** (terminal emulator)
- **Neovim**
- **tmux**
- **fuzzel** or **fzf** (configurable selector)
- **git** (for project detection)---
## Installation
Install the tool using `go install`:
```bash
go install mzunino.com.uy/go/code@latest
```---
### Selector Configuration
The selector interface is customizable with Lua scripts. Below are configurations for **fuzzel** (default) and **fzf**, which I use based on specific contexts.
#### Example: **fuzzel**
```lua
return {
command = function()
return {
command = "fuzzel",
args = { "--dmenu", "--prompt=Project: " }
}
end,
show = function(text)
return "📘 " .. text
end,
process_output = function(text)
return text:gsub("^📘%s*", "")
end
}
```#### Example: **fzf**
```lua
return {
command = function()
return {
command = "fzf",
args = { "--prompt=Project > ", "--height=40%", "--layout=reverse" }
}
end,
show = function(text)
return "📘 " .. text
end,
process_output = function(text)
return text:gsub("^📘%s*", ""):gsub("\n$", "")
end
}
```---
## Usage
This tool is designed for simplicity and ease of use in my workflow:
```bash
# Launch the project selector
code# Specify a custom base directory
code ~/Projects# Use a custom selector configuration
code -s ~/my-selector.lua
```---
## Window Management
The tool integrates with the **Sway** window manager to align with my workflow:
- Opens projects in new windows with specific titles.
- Focuses on existing project windows if they are already open.
- Simplifies window layout adjustments.---
## Project Detection
Projects are identified by the presence of a `.git` directory. The tool scans the base directory recursively to find Git repositories.
---
## License
This project is licensed under the MIT License. See [LICENSE](LICENSE) for details.