Rode provides a modern editing experience with features designed for productivity and comfort.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/kashsuks/rode/llms.txt
Use this file to discover all available pages before exploring further.
Multi-Tab Interface
Work with multiple files simultaneously using Rode’s tab system.Tab Management
Open Files
Click files in the sidebar, use fuzzy finder, or press
Cmd+N for a new fileSwitch Tabs
Click tab headers to switch between open files
Close Tabs
Click the close button or press
Cmd+W to close the active tabModified Indicator
Tabs show a dot (●) when the file has unsaved changes
Tab Types
Rode supports two types of tabs:Keyboard Shortcuts
| Shortcut | Action |
|---|---|
Cmd+N | Create new file |
Cmd+W | Close active tab |
Cmd+S | Save file |
Cmd+Shift+S | Save as (new location) |
Syntax Highlighting
Rode uses a VSCode-compatible syntax highlighter for accurate, beautiful code rendering.Supported Languages
The highlighter detects file types by extension:- Programming
- Web
- Markup & Config
- Shell
- Rust (
.rs) - Python (
.py) - JavaScript (
.js,.jsx) - TypeScript (
.ts,.tsx) - Go (
.go) - Java (
.java) - C/C++ (
.c,.cpp,.h) - Ruby (
.rb) - PHP (
.php)
Line Numbers & Gutter
Rode displays line numbers in a gutter on the left side of the editor.Gutter Features
- Current Line Highlighting: Active line number shown in bright color
- Visible Window: Shows 60 lines at a time for performance
- Overflow Indicators: Displays
...when content extends beyond viewport - Smart Scrolling: Automatically adjusts to keep cursor visible
Cursor Position & Status
The status bar displays your current position in the file. Status bar shows:- Current file name
- Line number (Ln)
- Column number (Col)
Custom Key Bindings
Rode extends standard editing with smart key bindings.Enhanced Delete Operations
Backspace Bindings
Backspace Bindings
Backspace: Delete character to the leftCmd+Backspace: Delete from cursor to start of lineAlt+Backspace: Delete word to the left
Delete Bindings
Delete Bindings
Delete: Delete character to the rightCmd+Delete: Delete from cursor to end of lineAlt+Delete: Delete word to the right
Editor Preferences
Customize your editing experience through the settings panel.Accessing Preferences
PressCmd+Shift+S to open settings, or use Command Palette → “Settings”.
Available Settings
Number of spaces per indentation level (1-16)
Use spaces instead of tab characters for indentation
Active color theme
Configuration File
Preferences are stored as Lua configuration:Autocomplete
Rode features an intelligent autocomplete engine with fuzzy matching, context awareness, and language-specific suggestions.How Autocomplete Works
The autocomplete engine automatically triggers as you type, analyzing the current context and providing relevant suggestions.Context-Aware
Understands member access (
.) and function calls to suggest appropriate completionsFuzzy Matching
Matches your partial input against keywords, types, and identifiers
Language Support
Supports Rust, JavaScript, TypeScript, and Python with language-specific keywords
Smart Scoring
Ranks suggestions by relevance using fuzzy scoring and context boosting
Supported Languages
Autocomplete provides language-specific suggestions for:- Rust
- JavaScript/TypeScript
- Python
Keywords:
fn, let, mut, pub, struct, enum, impl, trait, match, if, else, loop, while, for, return, break, continue, use, mod, crate, super, self, async, await, const, static, unsafe, extern, type, where, as, ref, move, dynTypes: String, Vec, Option, Result, Box, Rc, Arc, HashMap, HashSet, PathBuf, u8, u16, u32, u64, u128, i8, i16, i32, i64, i128, f32, f64, bool, char, str, usize, isizeSuggestion Types
The autocomplete engine categorizes suggestions by their type:Keywords
Keywords
Language-specific keywords like
fn, let, const, defIcon: Purple keyword indicatorTypes
Types
Built-in and user-defined types like
String, Vec, PromiseScoring Boost: 1.2× after type annotations (:, ->)Functions
Functions
Detected function identifiers (names followed by
()Detection: Infers from usage patterns in the codeMethods
Methods
Functions accessed via member syntax (
.method())Context: Triggered after . characterProperties
Properties
Object/struct members accessed via
. without function callContext: Triggered after . without ()Variables
Variables
Lowercase identifiers detected in the codeDefault: Any identifier not matching other categories
Constants
Constants
ALL_CAPS identifiers like
MAX_SIZEDetection: All uppercase characters with underscoresHow It Works
Word Detection
As you type, the engine extracts the current word at the cursor position.Words consist of alphanumeric characters and underscores.
Context Analysis
The engine analyzes surrounding code to understand context:
- Member access: Detects
.before cursor - Function call: Detects
(after potential completions - Type context: Detects
:or->before cursor
src/autocomplete/context.rsSuggestion Generation
Three types of suggestions are gathered:
- Language keywords - From
LanguageDefinitions - Built-in types - Language-specific type names
- Identifiers - Extracted from the current file
src/autocomplete/engine.rs:140-175Fuzzy Scoring
Each suggestion receives a score based on:
- Character match positions
- Consecutive character bonuses
- Prefix/suffix matching
- Context relevance boosts
src/autocomplete/scoring.rsKeyboard Navigation
| Key | Action |
|---|---|
Tab or Down Arrow | Select next suggestion |
Shift+Tab or Up Arrow | Select previous suggestion |
Enter | Accept selected suggestion |
Escape | Cancel autocomplete |
Context Boosting
The autocomplete engine applies context-specific score multipliers:src/autocomplete/scoring.rs:31-48
Identifier Extraction
The engine maintains a cache of recently used identifiers (up to 100) with recency-based scoring:src/autocomplete/engine.rs:65-94
Language Detection
File extensions are mapped to language identifiers:| Extension | Language |
|---|---|
.rs | rust |
.js, .mjs, .cjs | javascript |
.ts | typescript |
.tsx, .jsx | typescript |
.py | python |
src/autocomplete/engine.rs:129-138
Implementation Details
Autocomplete Engine Structure
Autocomplete Engine Structure
src/autocomplete/engine.rs:11-21Suggestion Structure
Suggestion Structure
src/autocomplete/types.rsMarkdown Preview
Rode can render Markdown files with live preview.Activating Preview
PressCmd+Shift+V while viewing a Markdown file to open a preview tab.
Preview tabs are read-only and display formatted Markdown content. Edit the source file to make changes.
Scrolling & Navigation
Rode provides smooth scrolling with keyboard and mouse support.- Mouse Wheel: Scroll through content (automatically scaled by 1/5 for precision)
- Cursor Following: Viewport automatically scrolls to keep cursor visible
- 60-Line Window: Displays 60 lines at a time for optimal performance