Releases: xyproto/orbiton
Releases · xyproto/orbiton
Orbiton 2.65.1
- Make it possible to open a blank
main.py
file, insert an example program withctrl-w
and run it by pressingctrl-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 withctrl-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 theMakefile
. - Add a status message when pasting multiple lines.
- Use
open
instead ofxdg-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
New features
- Add an experimental built-in English spell checker with fuzzy matching. Press
ctrl-f
and entert
to search for typos. Then pressctrl-a
to add a word,ctrl-i
to ignore a word orctrl-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 of1024
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) andModelfile
(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
, ifopen
orxdg-open
is available, together with a PDF viewer like ie.evince
orokular
.
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
- 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
andp
.
Orbiton 2.64.2
- Update the default
CXXFLAGS
in theMakefile
.
Orbiton 2.64.1
- 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
Nano Mode
- Add an experimental Nano Mode, where a symlink from
nano
ornan
to theo
executable makes the editor behave similar to Nano (and similar to the Nano mode in Pico). Themeta
/alt
keybindings are not implemented yet, but most of thectrl
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 thet
op,m
iddle orb
ottom, 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
andLitmus
. - 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 justreturn
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 withctrl-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 thent
to search for the next typo, and thenctrl-a
to add the word to the dictionary orctrl-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 holdctrl
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 bothCargo.lock
andCargo.toml
exists; openCargo.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 emptyCMakeLists.txt
file withctrl-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 ofctrl-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
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
orwl-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 ofctrl-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 namedrelease
and a file namedrelease.sh
, then openrelease.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
- Update the Makefile
Orbiton 2.62.8
Fixes
- Fix an issue in github.com/xyproto/vt100 that could disturb the colors when code was being syntax highlighted.
New features
- Press
ctrl-g
to "jump to definition" andctrl-t
to jump back. If there is nowhere to jump,ctrl-g
andctrl-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 callos.Stat
(asos.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 anOrbiton 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 thectrl-o
menu, except if the parent process isag
,find
orrg
, in which caseKill 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
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
andtextoutput
, which improves the performance of the "happy path" and also optimizes the most time consuming functions, as reported bygo 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):
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.