Skip to content

Releases: xyproto/orbiton

Orbiton 2.65.1

29 Sep 14:25
Compare
Choose a tag to compare
  • 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 2.65.0

17 Sep 16:41
Compare
Choose a tag to compare

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 2.64.3

29 Aug 10:02
Compare
Choose a tag to compare
  • 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 2.64.2

28 Aug 14:36
Compare
Choose a tag to compare
  • Update the default CXXFLAGS in the Makefile.

Orbiton 2.64.1

28 Aug 10:46
Compare
Choose a tag to compare
  • 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 2.64.0

27 Aug 20:05
Compare
Choose a tag to compare

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 2.63.1

11 Aug 14:17
Compare
Choose a tag to compare

Contributions

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 2.62.9

30 Jul 11:14
Compare
Choose a tag to compare
  • Update the Makefile

Orbiton 2.62.8

30 Jul 09:36
Compare
Choose a tag to compare

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 2.62.7

22 Jul 16:21
Compare
Choose a tag to compare

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.