Marker Jump

A VS Code extension that allows you to mark and navigate between specific lines in the editor with visual flag icons and numbered shortcuts.
📺 Demo

Mark lines with visual flags and navigate between them using keyboard shortcuts
📖 Documentation
✨ Features
- 🚩 Visual Flag Markers: Beautiful flag-style markers with customizable colors and optional numbers
- 🔢 Smart Numbering: First 9 markers get numbers 1-9 for quick keyboard access
- ⌨️ Flexible Navigation: Multiple navigation orders (line order vs creation order)
- 📊 Status Bar Toolbar: Quick access toolbar that appears when markers exist
- 💾 Persistent Markers: Optional persistence between VS Code sessions
- 📁 Untitled File Support: Automatic marker migration when saving untitled files
- ⚡ Conflict Resolution: Smart handling of marker conflicts during file operations
- 🎯 F2 Double-tap: Optional secondary shortcut for toggling markers
- 🌍 Multi-language: Full support for English, Chinese, and Japanese
🚀 Usage
Basic Commands
- Cmd+M (Mac) / Ctrl+M (Windows/Linux): Toggle marker on current line
- Cmd+Alt+↑ (Mac) / Ctrl+Alt+↑ (Windows/Linux): Jump to previous marker
- Cmd+Alt+↓ (Mac) / Ctrl+Alt+↓ (Windows/Linux): Jump to next marker
- Cmd+Shift+M (Mac) / Ctrl+Shift+M (Windows/Linux): Clear all markers
- Alt+Cmd+1-9 (Mac): Jump directly to marker number 1-9
When markers exist in the current file, a toolbar appears in the status bar showing:
- 🚩 2/5: Current marker position and total count
- ⬆️: Previous marker button
- ⬇️: Next marker button
- ❌: Clear all markers button
F2 Double-tap Feature
Enable markerJump.doubleKeyToggle
setting to use F2 as a secondary shortcut:
- Press F2 twice quickly (within 300ms) to toggle a marker
Untitled File Support
When you save an untitled file that contains markers:
- Markers are automatically migrated to the saved file
- If the target file already has markers, you'll see a dialog to choose:
- Replace with new markers: Replace existing markers
- Keep existing markers: Preserve current markers
⚙️ Configuration
Setting |
Default |
Description |
markerJump.persistent |
false |
Persist markers between VS Code sessions |
markerJump.markerColor |
#52A5D9 |
Hex color for the flag icons |
markerJump.showToolbar |
true |
Show status bar toolbar when markers exist |
markerJump.showNumbers |
true |
Display numbers on marker flags |
markerJump.numberingOrder |
creationOrder |
How to assign numbers: creationOrder or lineOrder |
markerJump.keyboardNavigationOrder |
numberOrder |
Keyboard navigation order: numberOrder or lineOrder |
markerJump.viewNavigationOrder |
numberOrder |
Status bar navigation order: numberOrder or lineOrder |
markerJump.doubleKeyToggle |
false |
Enable F2 double-tap feature |
Navigation Order Options
- Creation Order: Markers numbered by when they were created (1st created = #1)
- Line Order: Markers numbered by line position (top to bottom)
- Number Order: Navigate by marker numbers (1 → 2 → 3...)
- Line Order: Navigate by line position (top → bottom)
🌍 Multi-language Support
This extension provides full localization in multiple languages:
Language |
Code |
Status |
Coverage |
English |
en |
✅ Complete |
UI, Commands, Messages |
简体中文 |
zh-cn |
✅ Complete |
UI, Commands, Messages |
日本語 |
ja |
✅ Complete |
UI, Commands, Messages |
The interface language automatically matches your VS Code language setting.
📦 Installation
From VS Code Marketplace
- Open VS Code
- Go to Extensions (Ctrl+Shift+X / Cmd+Shift+X)
- Search for "Marker Jump"
- Click Install
From VSIX
- Download the
.vsix
file
- Open VS Code
- Go to Extensions → Install from VSIX
- Select the downloaded file
🛠️ Development
Building from Source
git clone <repository-url>
cd marker-jump
npm install
npm run compile
Project Structure
marker-jump/
├── src/
│ ├── extension.ts # Extension entry point
│ ├── markerManager.ts # Core marker management
│ ├── commandHandler.ts # Command handling
│ ├── uiOverlay.ts # Status bar UI
│ └── l10n.ts # Internationalization
├── l10n/ # Localization files
│ ├── bundle.l10n.json # English
│ ├── bundle.l10n.zh-cn.json # Chinese
│ └── bundle.l10n.ja.json # Japanese
└── package.json # Extension manifest
Adding New Languages
To add support for a new language:
- Create
package.nls.<language-code>.json
for package.json translations
- Create
l10n/bundle.l10n.<language-code>.json
for runtime translations
- Follow the existing translation structure
- Test with VS Code in the target language
🐛 Troubleshooting
Markers not persisting
- Check that
markerJump.persistent
is enabled in settings
- Markers in untitled files are not persisted until the file is saved
F2 double-tap not working
- Ensure
markerJump.doubleKeyToggle
is enabled
- Press F2 twice within 300ms
- Note: VS Code cannot detect raw Cmd key presses
- Toolbar only appears when the current file has markers
- Check that
markerJump.showToolbar
is enabled
📄 License
This project is licensed under the GNU Affero General Public License v3.0 - see the LICENSE file for details.
AGPL v3 License Summary
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
Key Points:
- ✅ Free to use, modify, and distribute
- ✅ Source code must remain open
- ⚠️ Network use requires source code availability
- 📋 Modifications must be shared under same license
🤝 Contributing
Contributions are welcome! Please feel free to:
- Report bugs
- Suggest new features
- Submit pull requests
- Improve translations
📝 Changelog
1.0.0
- ✨ Initial release
- 🚩 Visual flag markers with customizable colors
- 🔢 Numbered markers (1-9) with keyboard shortcuts
- ⌨️ Flexible navigation orders
- 📊 Status bar toolbar with marker count
- 💾 Optional marker persistence
- 📁 Untitled file marker migration
- ⚡ Marker conflict resolution
- 🎯 F2 double-tap feature
- 🌍 Multi-language support (English, Chinese, Japanese)