CudaText

From Free Pascal wiki
Jump to navigationJump to search

About

CudaText is a cross-platform text editor, written in Lazarus.

  • Made on ATSynEdit engine.
  • Syntax hilite of many langs: C, C++, Java, Pascal, JavaScript, HTML, CSS, PHP, Python... totally about 140 lexers exist (most are installed in "full" lexer library).
  • Find/replace with regex.
  • Command palette like ST3.
  • Multi-carets.

cudatext.png

Author: user:Alextp

Download

Versions for Win32 (x32) and Linux (x64 gtk2) exist: Ya.Disk.

They are portable.

Config

  • It has config system like ST3 editor: call "Settings-default" and you see default config. Copy any lines to config "Settings-user" and edit lines in user config. Config in JSON.
  • Lexer-override config: settings for single lexer only. E.g., you open Pascal file, config "lexer Pascal.json" is read after "user.json" config.
  • File-types config: specify in it mapping between file types (name or extension) and lexer names. Such mapping exists in lexer-library, this config overrides it.

Mouse shortcuts

Multi-carets:

  • Ctrl+click - add/delete caret
  • Ctrl+drag - add caret with selection
  • Ctrl+Shift+click - add carets column in several lines (from previous caret to clicked line)

Select:

  • Alt+drag - select column of text (Note: it may look weird if word-wrap on, because wrap is not considered here at all. Simple rectangle of coordinates [x1,y1]-[x2,y2] is always selected, even if this gives bad looking screen)
  • drag on gutter's line numbers - select by entire lines
  • double-click and immediately drag - select text by words

Clicks:

  • double-click - select clicked word
  • triple-click - select entire line (limited by end-of-lines)
  • middle-button click - start "Browser Scroll" mode: circle mark appears and mouse moving around this mark auto-scrolls text in 4 directions; speed of scrolling depends on distance of cursor from circle mark (any click to turn off)

Lexers

Lexers (syntax hiliters) from SynWrite editor used. Used EControl.ru syntax parser with mods. Main mod is support for folding in Python.

  • Dialog "Lexer prop" allows to config some props of current lexer (selected via statusbar panel in CudaText). You can config: lexer name, file types, line-comment-string for language, styles (colors, font-styles, border-styles).
  • Dialog "Lexer library" shows list of all lexers. It's file "full.lxl" or "small.lxl" (by option). You can delete items, or config them.

Editing lexers

You can modify (or make new) lexers. But not in CudaText. Install SynWrite (needed Wine on Linux) and in it you have lexer editor dialog.

  • In Synwrite call menu "Options--Addons manager--Install", install needed lexers from web. Synwrite lexer-library must have lexer before you edit it.
  • In Synwrite call "Lexer prop" dialog and edit all you need. Or make new lexer.
  • Exit Synwrite, take file "LexLib.lxl" from Synwrite folder and put it instead of Cuda's file "data/lexlib/full.lxl". Make a change in Synwrite's version: delete such blocks:
 CodeTemplates = <.....>
  • CudaText will make file smaller if you save lexer-library, it's ok.