NodeText Documentation

NodeText is a fast, lightweight code editor built with Rust and Tauri. It features built-in debugging via GDB/LLDB, syntax highlighting for 30+ languages, an integrated terminal, file explorer, code completion, and much more.

Open a File

CtrlO to open a file, or drag & drop a file onto the editor.

Open a Folder

Use File → Open Folder to open a project directory in the explorer.

Built-in Terminal

Ctrl` to toggle the integrated terminal panel.

Start Debugging

Press F5 to build and start debugging your Rust project.

Keyboard Shortcuts — File Operations

ShortcutAction
CtrlOOpen file
CtrlSSave file
CtrlShiftSSave file as (new name)
CtrlNCreate new file
CtrlWClose current file tab

Keyboard Shortcuts — Editing

ShortcutAction
CtrlZUndo
CtrlYRedo
CtrlShiftZRedo (alternative)
CtrlASelect all
CtrlCCopy
CtrlXCut
CtrlVPaste
TabInsert tab / Indent selected lines
ShiftTabDedent selected lines
HomeSmart home (toggle: first non-whitespace / column 0)
EnterNew line with auto-indent
AltMove line up (or expand selection scope in Rust)
AltMove line down (or shrink selection scope in Rust)
AltZToggle word wrap
Ctrl + Mouse WheelIncrease / decrease font size
AltShift + DragBlock (column) selection

Keyboard Shortcuts — Chord Shortcuts (Ctrl+K)

Chord shortcuts are two-step key sequences. Press CtrlK first, then press the second key within 1.5 seconds. These are built-in and cannot be overridden by custom shortcuts.

ShortcutAction
CtrlK then DFormat document (JSON, XML, HTML)
CtrlK then CComment selected lines
CtrlK then UUncomment selected lines

Note: If no text is selected, comment/uncomment operates on the entire current line. For block-comment languages (CSS, HTML, XML), the selection is wrapped with the block delimiters instead of line prefixes.

Keyboard Shortcuts — Find & Replace

ShortcutAction
CtrlFOpen find bar
CtrlHOpen find and replace
F3Find next match
ShiftF3Find previous match
CtrlShiftFFind in project (all files)
EscapeClose find bar

Keyboard Shortcuts — Navigation

ShortcutAction
CtrlGGo to line
F12Go to definition
Ctrl + ClickGo to definition (mouse)
CtrlTabSwitch to next file tab
CtrlShiftTabSwitch to previous file tab
F8Go to next error
ShiftF8Go to previous error

Keyboard Shortcuts — Debugging

ShortcutAction
F5Start / Continue debugging
ShiftF5Stop debugging
F9Toggle breakpoint on current line
F10Step over
F11Step into
ShiftF11Step out
CtrlShiftBBuild project (cargo build)

Keyboard Shortcuts — Terminal

ShortcutAction
Ctrl`Toggle terminal panel
EnterExecute command
Previous command in history
Next command in history
CtrlShiftCSend interrupt (Ctrl+C)

Keyboard Shortcuts — File Explorer

ShortcutAction
F2Rename selected file or folder
DeleteDelete selected file or folder
Right-clickContext menu: New File, New Folder, Rename, Delete, Copy, Cut, Paste

Custom Shortcuts — Configuration

You can add custom keyboard shortcuts that execute terminal commands. Open Settings and switch to the Shortcuts tab.

Adding a Custom Shortcut

  1. Click + Add Shortcut
  2. Check the modifier keys you want: Ctrl, Alt, Shift
  3. Select a key from the dropdown (A–Z, 0–9, or F1–F12)
  4. Enter the terminal command to execute (e.g., cargo build -r)
  5. Click Save

When the shortcut is triggered, the terminal panel opens automatically and the command is executed.

Custom Shortcuts — Reserved Shortcuts

The following shortcuts are reserved by the editor and cannot be overridden by custom shortcuts:

Ctrl+O Ctrl+S Ctrl+Shift+S Ctrl+N Ctrl+Z Ctrl+Y Ctrl+Shift+Z Ctrl+A Ctrl+C Ctrl+V Ctrl+X Ctrl+W Ctrl+F Ctrl+H Ctrl+G Ctrl+K Ctrl+` Ctrl+Tab Ctrl+Shift+Tab Ctrl+Shift+B Ctrl+Shift+F Alt+Z Alt+↑ Alt+↓ F3 F5 F8 F9 F10 F11 F12

Themes — Dark Theme (Default)

The default theme uses the Catppuccin Mocha color palette — a warm, low-contrast dark theme that is easy on the eyes.

UI Colors

#1e1e2e Background
#181825 Surface
#11111b Toolbar
#313244 Border
#89b4fa Accent
#cdd6f4 Text

Syntax Colors

#cba6f7 Keywords
#a6e3a1 Strings
#fab387 Numbers
#89b4fa Functions
#f9e2af Types
#6c7086 Comments

Themes — Light Theme

The light theme uses the Catppuccin Latte color palette — a clean, bright theme for daytime use.

UI Colors

#eff1f5 Background
#d6dae4 Surface
#c8ccd6 Toolbar
#ccd0da Border
#1e66f5 Accent
#4c4f69 Text

Syntax Colors

#8839ef Keywords
#40a02b Strings
#fe640b Numbers
#1e66f5 Functions
#df8e1d Types
#8c8fa1 Comments

Switch themes in Settings → Editor → Theme dropdown. The change applies immediately to the editor and all pop-out windows.

Font & Size

The editor uses the following monospace font stack (in priority order):

Cascadia Code Fira Code JetBrains Mono Consolas monospace

Font Size

  • Default: 13px
  • Range: 10px – 24px
  • Adjust in Settings → Editor → Font Size
  • Or use Ctrl + Mouse Wheel to adjust on-the-fly

Note: Font ligatures are disabled for accurate character-width rendering and cursor positioning.

Word Wrap

Toggle word wrap with AltZ or the wrap button in the toolbar. When enabled, long lines wrap at the editor boundary instead of scrolling horizontally. The setting persists across sessions.

Syntax Highlighting

NodeText supports syntax highlighting for 30+ languages, detected automatically from file extensions or content analysis.

Rust JavaScript TypeScript Python C C++ C# Java Go HTML CSS JSON XML SQL Markdown TOML YAML Shell Batch PowerShell Ruby PHP Kotlin Swift Dart Lua R Perl Scala Zig Elixir Haskell GraphQL Protobuf Dockerfile Razor (cshtml) ASPX CSV

You can also manually select a language from the language dropdown in the toolbar or the status bar.

Code Completion

The editor provides context-aware autocomplete suggestions including:

  • Language keywords — reserved words for the current language
  • Built-in methods — Rust standard library (String, Vec, Option, Result, HashMap, etc.)
  • Struct fields — triggered after . (dot)
  • Module items — triggered after :: (Rust)
  • File & project symbols — functions, types, and structs
  • Buffer words — words from the current document

Use / to navigate, Tab or Enter to accept, Escape to dismiss.

Auto-Indent & Bracket Matching

Auto-Indent

  • Automatic indentation on Enter preserving the current indent level
  • Extra indent after opening brackets {, (, [
  • Auto-dedent when typing closing brackets }, ), ]
  • Rust-specific: match arms (=>), where clauses, method chains

Bracket Matching

  • Highlights matching pairs: {}, [], ()
  • HTML/XML tag matching: <tag>...</tag>
  • Generic angle brackets: Vec<T>, HashMap<K,V>
  • Skips matches inside strings and comments

Auto-Close

When you select text and type an opening bracket or quote, the selection is automatically wrapped: (selection), [selection], {selection}, "selection", 'selection'.

Code Folding

Click the fold markers in the gutter to collapse or expand code regions. Rust files use AST-based folding; other languages use brace-matching. Collapsed regions show /* ... */ as a placeholder. Editing inside a folded region automatically unfolds it.

Block (Column) Selection

Hold AltShift and drag with the mouse to select a rectangular block of text. You can copy (CtrlC) or delete (Delete / Backspace) the block selection. Press Escape to clear.

Find & Replace

Press CtrlF to open the find bar. All matches are highlighted in orange, with the current match in yellow. Press CtrlH to open the replace row. Use the Replace button for single replacements or All to replace every match.

Find in Project

Press CtrlShiftF to search across all files in the open project folder. Results are listed with file path, line number, and matched content. Click any result to navigate directly to that location.

Document Formatting

Press CtrlK then D to format the current document.

  • JSON — Pretty-prints with 2-space indentation. Shows an error message if the JSON is invalid.
  • XML / HTML — Formats with proper indentation, handling self-closing tags, comments, CDATA, and processing instructions.

All formatting operations support undo (CtrlZ).

Comment / Uncomment

Press CtrlK then C to comment and CtrlK then U to uncomment selected code.

Comment Styles by Language

StyleLanguages
// Rust, JavaScript, TypeScript, C, C++, C#, Java, Go, Dart, Kotlin, Swift, Scala, Zig, PHP, Protobuf, GraphQL
# Python, Shell, Ruby, R, Perl, Elixir, TOML, Config, Dockerfile, PowerShell
-- SQL, Lua, Haskell
REM Batch
<!-- -->HTML, XML
/* */CSS

Integrated Terminal

Toggle with Ctrl`. The terminal supports:

  • Command execution with output display
  • Command history navigation (/)
  • Interrupt running commands (CtrlShiftC)
  • Syntax-colored cargo check output
  • Auto-opens for builds, debug sessions, and custom shortcuts

Debug / Watch Panel

The watch panel shows local variables and custom watch expressions during debug sessions. Features:

  • Locals — automatically populated with local variable values
  • Watch — add custom expressions to monitor
  • Recursive structure expansion
  • Type information on hover
  • Context menu: Add to watch, Copy value, Inspect
  • Watch expressions persist in debug.json

Claude AI Panel

An integrated AI assistant powered by Claude. Enter your Anthropic API key in the panel settings to enable it. Ask questions about your code, get explanations, or request help directly within the editor.

  • Chat-style message interface
  • Enter to send, ShiftEnter for new line
  • Conversation history maintained during session

Chart Visualization

Visualize Rust code structure as interactive graphs. Chart types include:

  • Structure — module and type hierarchy
  • Call Graph — function call relationships
  • Dependencies — module dependencies
  • Module Map — project module layout
  • Type Hierarchy — trait/struct inheritance
  • Complexity — code complexity heatmap

Nodes are color-coded by kind. Double-click a node to navigate to its definition. Pan and zoom to explore large codebases.

Pop-out / Pin Windows

Several panels can be detached into separate windows using the pop-out button (arrow icon) in the panel header:

  • File Explorer — browse project files in a separate window
  • Debug / Watch — monitor variables side-by-side with code
  • Search Results — keep search results visible while editing
  • Terminal — detach the terminal for multi-monitor setups
  • Chart — visualize code in a dedicated window

Pop-out windows automatically sync the current theme and font size. Each window operates independently and can be closed or pinned back to the main editor.

Breakpoints

Click on a line number to toggle a breakpoint (red circle). Right-click a breakpoint to add a condition expression. Breakpoints are saved across sessions.

Conditional Breakpoints

Set an expression (e.g., x > 0, name == "foo") to pause execution only when the condition is true. Optionally filter by thread ID.

Step Controls

ControlDescription
F5 ContinueResume execution until the next breakpoint
F10 Step OverExecute the current line, skip into function calls
F11 Step IntoStep into the function call on the current line
ShiftF11 Step OutContinue until the current function returns
ShiftF5 StopTerminate the debug session

The debugger supports both GDB and LLDB, auto-detecting which is available. Rust macro expansions are automatically handled during stepping.

Variables & Watch

During debugging, the Watch panel displays:

  • Local variables with their current values and types
  • Watch expressions that you add manually
  • Expand complex types (structs, enums, vectors) to inspect nested fields
  • Smart type display: simplifies alloc::string::String to String
  • Automatic unwrapping of Box, Rc, and Arc smart pointers

Build & Diagnostics

Press CtrlShiftB to run cargo build -r. Errors and warnings appear as underlines in the editor. The terminal shows full build output with colored diagnostics.

Settings

Open Settings from the toolbar gear icon. The settings dialog has two tabs:

Editor Tab

  • Theme — Choose between Dark and Light
  • Font Size — Set between 10px and 24px

Shortcuts Tab

  • Add, edit, and remove custom keyboard shortcuts
  • Each shortcut maps a key combination to a terminal command
  • Built-in shortcuts are protected and will show an error if a conflict is detected

Settings are saved automatically and persist across sessions.

Drag & Drop

Drag a file from your system file manager and drop it onto the editor to open it. A visual overlay with a dashed border and "Drop file to open" message appears during the drag. File tabs can also be reordered by dragging them.

Status Bar

The status bar at the bottom of the window shows:

  • Cursor positionLn 1, Col 1
  • Language — current file language (e.g., Rust, JavaScript)
  • Encoding — UTF-8
  • Status messages — save confirmations, errors, build status
  • Debug status — shown when a debug session is active