orbiton

Configuration-free text editor and IDE limited to VT100. Suitable for writing git commit messages, editing Markdown, config files, source code, viewing man pages and for quick edit-compile cycles when programming. Has syntax highlighting, jump-to-error, rainbow parentheses, macros, tab completion, cut/paste portals and a simple gdb front-end.

BSD-3-CLAUSE License

Stars
430
Committers
5

Bot releases are hidden (Show)

orbiton - Orbiton 2.65.11 Latest Release

Published by xyproto 8 months ago

  • Fix an issue with a mutex when redrawing, in connection with signals and ctrl-c.
  • Make ctrl-k a bit faster, when removing lines or deleting to the end of the current line.
  • Add initial support for CSS.
  • Update dependencies.
  • Update documentation.
orbiton - Orbiton 2.65.10

Published by xyproto 8 months ago

  • Add a file that was missing from the vendored dependencies.
orbiton - Orbiton 2.65.9

Published by xyproto 8 months ago

Improvements

  • Disregard copy/paste portals that are older than 25 minutes when starting o.
  • Improve the status message when copying lines to the clipboard.
  • Improve the text/binary detection to also support UTF-16.
  • Improve how signals are handled.

Language support

  • Respect # as the single line comment marker for R and Ruby.
  • Add initial support for Objective-C.
  • Switch from autopep8 to black as the tool used to format Python code when ctrl-w is pressed.
  • Adjust the ktlint parameters (for formatting Kotlin).

Syntax highlighting

  • Minor improvements to the JavaScript syntax highlighting.
  • Minor improvements to the C syntax highlighting.

Various

  • Improve the OpenBSD, FreeBSD and NetBSD support.
  • Update documentation.
  • Update dependencies.
orbiton - Orbiton 2.65.8

Published by xyproto 10 months ago

  • Revert a commit that made tests stop working in the GitHub workflow.
orbiton - Orbiton 2.65.7

Published by xyproto 10 months ago

Redrawing

  • Lock the statusbar for redrawing when ctrl-c is pressed.
  • Try a different approach to redrawing if SIGWINCH happens.
  • Fix the redraw if esc is pressed after ctrl-l has been pressed.

User interface

  • Use a better placement for the initial "quick help" box.
  • Adjust the right hand side progress bar movement.
  • Let the run output box have smarter resizing.

Programming

  • Use exact imports when formatting Java or Kotlin code (not x.*).
  • Add an -i flag for being able to specify an input file for when the program is being built and run with double ctrl-space. This can be useful when solving Advent of Code tasks. The default input file is input.txt, if it exists.
  • Let ctrl-g look for more files when searching for definitions.
  • Do not use kotlin-native by default for Kotlin code if kotlin-native is installed. Look for kotlinx.cinterop.

User experience

  • Improve the filename completion at start.
  • If a search is active and ctrl-g is pressed, then clear the search, but don't stop there.
  • Fix the Export menu option on macOS, for exporting Markdown to HTML if ctrl-space might not be available.
  • Minor changes to the (experimental) screenshot feature (available when the high-score has been beaten in the little built-in game).

Syntax highlighting

  • Improve the syntax highlighting for Go.
  • Improve the syntax highlighting for configuration files.

Improvements to the code

  • Simplify the Makefile.
  • Remove several unused functions with the help of the deadcode utility.

General

  • Update documentation.
  • Update dependencies.
orbiton - Orbiton 2.65.6

Published by xyproto 11 months ago

Markdown

  • Add a simple Markdown template (insert with ctrl-w in a blank file).
  • Do not use ctrl-t as an alias for toggling checkboxes in Markdown (ctrl-space can be used to toggle them).

User experience

  • When browsing up and down with ctrl-n or ctrl-p, do not insert an n or p if it is pressed within 50 ms of browsing up and down. This helps avoid stray n or p letters by accident after browsing up and down repeatedly.
  • When displaying the last run command with o -l on the command line, make sure to quote strings that looks like filenames.

Programming

  • Make the indentation smarter for switch/case statements.
  • When displaying the output from running programs by pressing ctrl-space twice, only trim whitespace from the right side of the output (and also display a couple more lines).
  • Use the IntelliJ style when formatting code with ktlint.
  • Fix a bug where the editor tried to insert parenthesis for a bare while { statement in Kotlin.

New language support

  • Add initial support for Swift.
  • Add initial support for Inko.
  • Improve syntax highlighting of single line comment markers.

Syntax highlighting

  • Improve syntax highlighting for Kotlin.
  • Improve syntax highlighting for configuration files.
  • Improve syntax highlighting for Makefiles.

General

  • Update dependencies.
  • Update documentation.
orbiton - Orbiton 2.65.5

Published by xyproto 12 months ago

  • Fix a bug with the progress indicator that appears when pressing ctrl-n or ctrl-p.
  • Improve how the tutorial and the quick help text is presented.
orbiton - Orbiton 2.65.4

Published by xyproto 12 months ago

Performance

  • Allocate memory before loading data from a file.

Editor Behavior

  • When pasting code at a place that is indented, try to respect the current indentation level.
  • After pressing ctrl-l to jump somewhere, also let ctrl-n and ctrl-p work in this mode.
  • Use a scroll-bar like indicator on the right hand side instead of the experimental mini-map.

Syntax Highlighting

  • Improve syntax highlighting for configuration files.
  • Handle backticks (`) in Markdown in a more correct way.
  • Improve syntax highlighting for code blocks in Markdown.

User Help

  • Adjust the wording of the --help output.
  • Improve how the Quick Help box is being drawn.
  • If the user opens up a source code file, edits and saves it within 30 seconds, recognize the user as a developer and disable the quick help screen.

General

  • Build releases with (and also require) Go 1.21.
  • Update CI configuration.
  • Update documentation.
  • Update dependencies.
orbiton - Orbiton 2.65.3

Published by xyproto 12 months ago

New features

  • When browsing up and down with ctrl-p and ctrl-n, display a mini map on the right side.
  • Add a -d flag for also creating directories when opening a new file within one or more new directories.
  • Add a new Teal theme.

Syntax highlighting

  • Improve syntax highlighting for CMake.
  • Improve syntax highlighting for Docker files.

Go related

  • Let ctrl-w to format code also work for Go files where no go.mod file is present.
  • Look for go.mod in parent directories before building.

Performance

General

  • Improve the wording in the tutorial.
  • Let the quick help border color also work on light terminal emulator backgrounds.
  • In the ctrl-o menu, move Delete the rest of the file up a bit, so that the shortcut key will be d.
  • Move the wordWrap function to a separate package.
  • Update dependencies.
  • Update documentation.
orbiton - Orbiton 2.65.2

Published by xyproto about 1 year ago

Fixes

  • Fix syntax highlighting of URLs in shell scripts.
  • Improve how man pages are parsed and presented, so that it also handles underscores in the formatting codes.
  • Let ctrl-space do nothing when viewing a man page, instead of toggling to the raw bytes.
  • When building a main.go file with ctrl-space and no go.mod file exists, then run go build main.go and not just go build.
  • When a search is active and ctrl-l is pressed, clear the search before highlighting letters that can be jumped to.

New features

  • Add a menu option for copying all text between the bookmark (set one with ctrl-b) and the cursor position.
  • Build PKGBUILD files with ctrl-space (this is an experimental feature).
  • Let osudo act like EDITOR=o visudo (this depends on visudo being present, for now).

Look and feel

  • Enhance the look and feel of the "quick help" pane.
  • Use the JumpToLetterColor from the theme when highlighting letters to jump to when ctrl-l is pressed.
  • Minor changes to the Synthwave theme.
  • Improve syntax highlighting of YAML files.
  • Improve syntax highlighting of Dockerfiles.
  • Improve syntax highlighting of configuration files.
  • Improve a status message.

Various

  • Let ctrl-space or ctrl-t toggle checkboxes in Markdown documents instead of ctrl-w.
  • Improve the detection of HTML and XML files.
orbiton - Orbiton 2.65.1

Published by xyproto about 1 year ago

  • Make it possible to open a blank main.py file, insert an example program with ctrl-w and run it by pressing ctrl-space twice.
  • Fix an issue with enabling man page mode when using MANPAGER=o.
  • Smarter cursor movement when joining lines with ctrl-j (stay at the start of the line if it is pressed repeatedly).
  • Make it possible to jump back with ctrl-b after jumping to a definition within the same file with ctrl-g.
  • When entering a switch/case block with empty cases, don't indent the cases further and further to the right.
  • Let the copy/paste portal have a 20 minute timeout, so that pasting into a file some time later becomes more intuitive.
  • Use the new GOEXPERIMENT=loopvar feature of the Go compiler in the Makefile.
  • Add a status message when pasting multiple lines.
  • Use open instead of xdg-open on macOS.
  • Add a quick help box that appears when starting the editor, that can easily be disabled.
  • Add a simple tutorial mode, where the user can browse through steps.
  • Add a simple hotkey overview within the editor.
  • Update dependencies.
  • Update documentation.
orbiton - Orbiton 2.65.0

Published by xyproto about 1 year ago

New features

  • Add an experimental built-in English spell checker with fuzzy matching. Press ctrl-f and enter t to search for typos. Then press ctrl-a to add a word, ctrl-i to ignore a word or ctrl-n to go to the next instance of the word. The word lists are not persistent, yet.

Usability improvements

  • Keep the cursor at the start of the text when joining lines with ctrl-j.
  • Improve the status output when clearing locks.
  • Improve the --help output.
  • Improve the Tab key behavior when the user is inputting text.
  • Make o -l (view last executed external command) more usable by also saving file export commands.
  • Improve some status messages.
  • Disallow Greek question marks that looks like semicolons (0xcd 0xbe) in addition to the already disallowed non-breaking space (0xc2 0xa0) and annoying tildes (0xcc 0x88). This is opinionated, but removes annoyances.

Performance improvements

  • Enable profile-guided optimization (PGO), which is a new feature in Go 1.21.
  • Let the ctrl-f search history have timestamps, so that it can be culled when it grows too large (currently set to a maximum of 1024 entries). This ensures that the search history will never take too long to load.

File format support

  • Add initial support for Dockerfile (For Docker images and containers) and Modelfile (For Ollama / LLMs).
  • Let ASCIIDoc and SCDoc have separate editor modes.
  • Add syntax highlighting and a simple template for Lilypond (music notation).
  • Make it possible to export PDF files from Lilypond code by pressing ctrl-space if Lilypond is installed.
  • Make it possible to both export and open PDF files when editing Lilypond code with a double press on ctrl-space, if open or xdg-open is available, together with a PDF viewer like ie. evince or okular.

Bug fixes

  • Remove a stray log message.
  • Improve and fix the tracing and profiling behavior (when building with make trace).
  • When opening a binary file, make sure not to set the terminal title to anything cryptic.
  • Fix two race conditions that could happen when very quickly jumping around in a file and/or frantically searching for text.
  • Update the Makefile to install the right Orbiton Light icon + rename an icon file.

Various changes

  • Move the Pandoc PDF render option to the ctrl-o menu.
  • Only have one ctrl-o menu option for inserting time and date.
  • In Nano mode: don't save the file first, when running the spell checker by pressing ctrl-t.

General

  • Refactor some of the code.
  • Remove some unused functions.
  • Add some tests.
  • Update documentation.
  • Update dependencies.
orbiton - Orbiton 2.64.3

Published by xyproto about 1 year ago

  • Follow the advice of golint.
  • Add the total number of lines and which line the cursor is at as a percentage to the ctrl-g status bar text.
  • Fix an issue with the Makefile for when building and installing the VTE/GTK3 application on macOS.
  • Add longer command line flags, such as --copy and --paste as aliases for -c and p.
orbiton - Orbiton 2.64.2

Published by xyproto about 1 year ago

  • Update the default CXXFLAGS in the Makefile.
orbiton - Orbiton 2.64.1

Published by xyproto about 1 year ago

  • Also support Go 1.19 and Go 1.20 in addition to Go 1.21, ref. feature request #18.
  • Add an initial Homebrew package file.
  • Use the Litmus theme as the default VTE/GTK3 "light mode".
  • Let -r both clear file locks and close the copy/paste portal.
orbiton - Orbiton 2.64.0

Published by xyproto about 1 year ago

Nano Mode

  • Add an experimental Nano Mode, where a symlink from nano or nan to the o executable makes the editor behave similar to Nano (and similar to the Nano mode in Pico). The meta/alt keybindings are not implemented yet, but most of the ctrl keybindings are.

Text navigation

  • Add a new jump to letter on screen feature: When pressing ctrl-l to jump to a line, percentage, ratio or to the top, middle or bottom, also highlight a selection of letters and make it possible to jump directly to those.

Themes and syntax highlighting

  • Add two new experimental themes: Gray Mono and Litmus.
  • Improve syntax highlighting for configuration files, Go and Kotlin.

Performance and responsiveness

  • Improve the performance of the syntax highlighting.
  • Improve the performance when searching for text.
  • When pressing ctrl-c to copy text, run it in the background.
  • Add a timeout to the "search as you type" feature (searches when ctrl-f is pressed and one starts typing) to make typing in text to search for feel more responsive.

Search and spellcheck

  • Let ctrl-f and then just return search for the word at the cursor, if any.
  • When searching for text with ctrl-f, make it possible to paste in the text to search for with ctrl-v.
  • Make it possible to search for text and then replace it with an empty string, again.
  • Add built-in English spellchecking. Press ctrl-f and then t to search for the next typo, and then ctrl-a to add the word to the dictionary or ctrl-i to ignore it. This is an experimental feature, and the modifications to the word list are not persistent.

The ctrl-o and theme menu

  • For jumping directly to a letter in the ctrl-o menu, also make it possible to also hold ctrl for many of the letters, as a convenience.
  • Add a menu option to the ctrl-o menu for splitting a line by space (but not if the space is within (), [] or {}).
  • Let the default menu choice in the theme menu be the current theme.
  • Fix the "Build" menu entry so that it says "Export" when editing Markdown.

Development

  • Make it possible to run simple Java programs by pressing ctrl-space twice.
  • Add built-in ability to organize imports for Java and Kotlin.
  • Display the error output if running a command with ctrl-space fails.
  • If the user tries to open just Cargo. and both Cargo.lock and Cargo.toml exists; open Cargo.toml and let .lock have a lower priority.
  • Crop output from running executables to fit in the UI box.
  • Update the CMakeLists.txt template (can be inserted into an empty CMakeLists.txt file with ctrl-w).
  • Add a command line flag (-l) for printing the last used external command (build/export/format command).

Hotkeys

  • Let ctrl-_ jump to a matching parenthesis instead of ctrl-p.
  • Fix an issue with detecting double-pressed ctrl-space correctly.
  • Require double ctrl-space to render Markdown to HTML, to make it less likely to press by accident.

The VTE/GTK3 frontend

  • Modify how the VTE/GTK3 frontend handles themes.

General

  • Add the "FOSSA license scan result" and badge to the README.md file.
  • Update the web page to use the latest version of the Algernon web server.
  • Improve some status messages.
  • Some refactoring. Some functions are moved to github.com/xyproto/files.
  • Update the Makefile.
  • Update dependencies.
  • Update documentation.
orbiton - Orbiton 2.63.1

Published by xyproto about 1 year ago

Contributions

  • Correct a typo in TODO.md (thanks @felixonmars).

Optimized startup performance

  • Cache the result when checking which platform is in use.
  • Show a status message with the elapsed time if the editor loads in less than 90 milliseconds.

o launches in less than 90 milliseconds on most systems I have tried it on.

  • These things are only loaded when needed:
    • The search history.
    • The path to utilities that can format code (like ktlint).
    • Template/example programs (that can be inserted by pressing ctrl-w in empty files).
    • The path to clipboard-related utilities (like xclip or wl-copy)

Programming language support

  • Add experimental support for ALGOL 68, Fortran 77, Fortran 90 and F#.
  • Let ctrl-g try to jump to definitions within the same file before trying to jump to definitions within other files.
  • Use ctrl-b instead of ctrl-t to jump back after having jumped to a definition.
  • If a directory with the same name as the executable name for a C or C++ program is found when compiling, use main as the name.

Related to read-only files

  • Add an -m flag for opening files as read-only and monitoring them for changes.
  • Let return show a status message if pressed within a read-only file.
  • Enable syntax highlighting when opening read-only files in /usr/share/doc or /usr/include (as opposed to coloring everything red).

Various

  • When trying to open a file named release, but no such file exists, only a directory named release and a file named release.sh, then open release.sh.
  • Further improve how /etc/fstab files are formatted.
  • Use slightly smarter chmod +x behavior when saving shell scripts.
  • Add a menu option for being able to switch between the primary and secondary clipboard, on Linux.
  • Only display the program version in the ctrl-o menu the first time the menu is being displayed after starting the executable.
  • Alleviate an issue where the VTE/GUI application could exit if o opened small text files too fast.
  • Minor changes to the Makefile.
  • Improve some status messages.
  • Some refactoring.
  • Minor changes to the built-in game.
  • Update documentation.
  • Update dependencies.

This release was compiled with Go 1.21 on Arch Linux.

orbiton - Orbiton 2.62.9

Published by xyproto about 1 year ago

  • Update the Makefile
orbiton - Orbiton 2.62.8

Published by xyproto about 1 year ago

Fixes

New features

  • Press ctrl-g to "jump to definition" and ctrl-t to jump back. If there is nowhere to jump, ctrl-g and ctrl-t will toggle the status bar or record a macro, respectively, as before. This has only been tested on Go source code, and is an experimental feature.

Performance improvements

  • Revert back to use os.ReadFile instead of the custom implementation that did not call os.Stat (as os.ReadFile does). The performance improvements for the custom way of reading files only applied to some filesystems and setups (XFS + NVMe).

Changes to the VTE/GUI application

  • Add Orbiton Light and an Orbiton Dark menu entries (.desktop files).
  • Fix an issue where Orbiton Light would open read-only files with a dark background instead of a light one.

Other changes

  • Minor changes to the ctrl-g status bar information layout.
  • Show Exit without saving as the last menu option for the ctrl-o menu, except if the parent process is ag, find or rg, in which case Kill parent and exit without saving is offered instead. This combines well with this bash function: fo() { find . -type f -wholename "*$1" -exec o {} $2 \;; }

This release has been compiled with Go 1.20.6.

orbiton - Orbiton 2.62.7

Published by xyproto about 1 year ago

New language support

  • Initial support for Alpine APKBUILD files.
  • Initial support for Dart, including "jump to error" and also formatting with ctrl-w.
  • Initial support for Just and justfiles.

Performance improvements

  • Minor performance improvements to vt100 and textoutput, which improves the performance of the "happy path" and also optimizes the most time consuming functions, as reported by go tool pprof.
  • Improve the performance when reading files that are of a typical size for source code and Markdown documents, by using a 1024 byte buffer and also avoiding calling os.Stat. Related graph, where the X-axis is for approximately how large the files that are being read are (take1024 is the one that uses 1024-byte buffers when reading):

graph

Various

  • Avoid saving some filenames in /tmp and also - to the location history.
  • Minor changes to how commemorative images for new highscores from the little included easter-egg game are saved.
  • Update dependencies.
  • Update documentation.
Package Rankings
Top 5.57% on Proxy.golang.org
Badges
Extracted from project README's
FOSSA Status Go Report Card License Packaging status FOSSA Status Stargazers over time
Related Projects