Recent Releases
2.68.330 Nov 2024 19:25
minor feature:
lt;h3 gt;Look and feel lt;/h3 gt;.
lt;ul gt;.
lt;li gt;Keep a separate search and replace history, so that arrow up/down works both for the search text and for the replacement text. lt;/li gt;.
lt;li gt;a missing status message when pasting through portals. lt;/li gt;.
lt;li gt;a missing bookmark-related status message. lt;/li gt;.
lt;li gt;Make adjustments to the highlight color for various color themes. lt;/li gt;.
lt;/ul gt;.
lt;h3 gt;Programming lt;/h3 gt;.
lt;ul gt;.
lt;li gt;Check if Assembly looks like Go/Plan9 style when formatting (there is built-in support for formatting Go/Plan9 style Assembly). lt;/li gt;.
lt;li gt;Let lt;code gt;ctrl-o,space lt;/code gt; and then lt;code gt;make lt;/code gt; exec lt;code gt;make lt;/code gt;. lt;/li gt;.
lt;li gt;Look for a lt;code gt;makefile lt;/code gt;, lt;code gt;Makefile lt;/code gt; or lt;code gt;GNUmakefile lt;/code gt; before executing lt;code gt;make lt;/code gt;. lt;/li gt;.
lt;li gt;Let lt;code gt;ctrl-g lt;/code gt; not try to jump to definition for non-source code files. lt;/li gt;.
lt;li gt;Improve jumping to a matching parenthesis when lt;code gt;ctrl-g lt;/code gt; is pressed. lt;/li gt;.
lt;li gt;Improve the Odin function name detection. lt;/li gt;.
lt;li gt;"jump to error" for Odin. lt;/li gt;.
lt;li gt;the Odin build command argument order, and running Odin programs with lt;code gt;ctrl-space lt;/code gt;. lt;/li gt;.
lt;li gt;Add initial support for Starlark. lt;/li gt;.
lt;li gt;Improve syntax highlighting for CSS. lt;/li gt;.
lt;/ul gt;.
lt;h3 gt;Flags lt;/h3 gt;.
lt;ul gt;.
lt;li gt;Add lt;code gt;-b lt;/code gt; to list the file with lt;code gt;bat lt;/code gt; after copying or pasting, in connection with lt;code gt;-c lt;/code gt; or lt;code gt;-p lt;/code gt;. lt;/li gt;.
lt;li gt;Add lt;code gt;-t lt;/code gt; to list the file after copying or pasting, in connection with lt;code gt;-c lt;/code gt; or lt;code gt;-p lt;/code gt;. lt;/li gt;.
lt;/ul gt;.
lt;h3 gt;General lt;/h3
2.68.228 Nov 2024 19:45
minor feature:
lt;h2 gt; lt;/h2 gt;.
lt;ul gt;.
lt;li gt;When editing Nroff, let lt;code gt;ctrl-space lt;/code gt; toggle the man page preview properly. lt;/li gt;.
lt;li gt;Let the bookmark functionality display status bar messages again, when lt;code gt;ctrl-b lt;/code gt; is pressed. lt;/li gt;.
lt;li gt;a in the lt;code gt;vt100 lt;/code gt; dependency in connection with pasting in text with lt;code gt;shift-insert lt;/code gt;. lt;/li gt;.
lt;/ul gt;.
lt;h2 gt;New features lt;/h2 gt;.
lt;ul gt;.
lt;li gt;Add built-in support for formatting Go/Plan9 style Assembly by pressing lt;code gt;ctrl-w lt;/code gt; by using the lt;a href="https://github.com/klauspost/asmfmt" gt;asmfmt lt;/a gt; and lt;a href="https://github.com/xyproto/lookslikegoasm" gt;lookslikegoasm lt;/a gt; packages. lt;/li gt;.
lt;li gt;Add tab completion with lt;a href="https://github.com/ollama/ollama" gt;Ollama lt;/a gt;/LLMs, if the lt;code gt;-o lt;/code gt; or lt;code gt;--ollama lt;/code gt; flag is given. This is an lt;strong gt;experimental lt;/strong gt; feature! lt;/li gt;.
lt;li gt;Let lt;code gt;ctrl-o,b lt;/code gt; trigger block editing. lt;/li gt;.
lt;li gt;Let lt;code gt;ctrl-o,space lt;/code gt; open the command prompt. lt;/li gt;.
lt;/ul gt;.
lt;h2 gt;Improvements lt;/h2 gt;.
lt;ul gt;.
lt;li gt;Improve how format commands are looked up, for various programming languages. lt;/li gt;.
lt;li gt;Improve the C function signature detection. lt;/li gt;.
lt;li gt;Improve the "go to definition" feature. lt;/li gt;.
lt;li gt;Show the progress indicator after jumping with lt;code gt;ctrl-l lt;/code gt;. lt;/li gt;.
lt;li gt;Simplify the man page syntax highlighting code a bit. lt;/li gt;.
lt;li gt;Add usage help for the Pico/Nano mode flag ( lt;code gt;-e lt;/code gt; or lt;code gt;--nano lt;/code gt;). lt;/li gt;.
lt;/ul gt;.
lt;h2 gt;General lt;/h2 gt;.
lt;ul gt;.
lt;li gt;Confirm that Orbiton passes the lt;a href="https://www.hogbaysoftware.com/posts/moby-dick-workout/" rel="nofollow"
2.67.124 Nov 2024 03:05
minor feature:
lt;ul gt;.
lt;li gt;Let lt;code gt;Esc lt;/code gt; also cancel block edit mode. lt;/li gt;.
lt;li gt;Make it possible to build Makefiles with lt;code gt;ctrl-space lt;/code gt; and also switch the process with exec. lt;/li gt;.
lt;li gt;Remove support for lt;a href="https://github.com/xyproto/guessica" gt;Guessica lt;/a gt; (archived) for lt;code gt;PKGBUILD lt;/code gt; and lt;code gt;APKBUILD lt;/code gt; files. Arch now has a different system for tracking new releases, and LLMs are also becoming more capable for this purpose. lt;/li gt;.
lt;li gt;Disable the initial tutorial screen when on Android, to make it easier to operate in Termux. lt;/li gt;.
lt;li gt;Add a template for lt;code gt;.gitignore lt;/code gt; and lt;code gt;.ignore lt;/code gt; files (for when lt;code gt;ctrl-w lt;/code gt; is pressed in an empty file). lt;/li gt;.
lt;li gt;Update documentation. lt;/li gt;.
lt;li gt;Update the tutorial. lt;/li gt;.
lt;li gt;Update dependencies. lt;/li gt;.
lt;/ul gt;.
2.67.023 Nov 2024 03:45
minor feature:
lt;h2 gt;Performance lt;/h2 gt;.
lt;ul gt;.
lt;li gt;Let platform checks be defined as constants at compile time. lt;/li gt;.
lt;li gt;Cache checks for if executables exists in lt;code gt;PATH lt;/code gt;. lt;/li gt;.
lt;li gt;Update the lt;code gt;default.pgo lt;/code gt; file (used for profile guided optimization). lt;/li gt;.
lt;/ul gt;.
lt;h2 gt;Programming and Markdown lt;/h2 gt;.
lt;ul gt;.
lt;li gt;Remove a check for if Go code is valid while typing. lt;/li gt;.
lt;li gt;Improve syntax highlighting for Scheme. lt;/li gt;.
lt;li gt;Also support the default indentation of lt;code gt;go.mod lt;/code gt; files. lt;/li gt;.
lt;li gt;Improve the detection of JSON content for files without a lt;code gt;.json lt;/code gt; extension. lt;/li gt;.
lt;li gt;an where formatting Markdown documents with lt;code gt;ctrl-w lt;/code gt; would misinterpret lt;code gt;--- lt;/code gt;-style headlines as tables. lt;/li gt;.
lt;li gt;Add a template for the C3 programming language. lt;/li gt;.
lt;/ul gt;.
lt;h2 gt;Block editing lt;/h2 gt;.
lt;ul gt;.
lt;li gt;Show an informative status bar when toggling block edit mode with lt;code gt;ctrl-g lt;/code gt;. lt;/li gt;.
lt;li gt;Let lt;code gt;ctrl-d lt;/code gt; and lt;code gt;backspace lt;/code gt; also work in block edit mode. lt;/li gt;.
lt;/ul gt;.
lt;h2 gt;Arch Linux lt;/h2 gt;.
lt;ul gt;.
lt;li gt;Let lt;code gt;ctrl-space lt;/code gt; when editing lt;code gt;PKGBUILD lt;/code gt; files not launch a terminal emulator but simply start building and replace the current process with an exec syscall. lt;/li gt;.
lt;li gt;Do not lt;code gt;chmod +x lt;/code gt; shell scripts with the lt;code gt;.install lt;/code gt; extension. lt;/li gt;.
lt;/ul gt;.
lt;h2 gt;Look and feel lt;/h2 gt;.
lt;ul gt;.
lt;li gt;Adjust the color of the max column indicator. lt;/li gt;.
lt;li gt;Improve the wording and ordering in the lt;code gt;ctrl-o lt;/code gt; menu. lt;/li gt;.
lt;li gt;Add a menu option for the max column indicator. lt;/l
2.66.025 Oct 2024 15:45
minor feature:
lt;h2 gt;UX lt;/h2 gt;.
lt;ul gt;.
lt;li gt;When the status line is enabled AND a maximum column width is specified, the column limit is indicated with lt;code gt; lt;/code gt; characters, behind the text. lt;/li gt;.
lt;li gt; lt;code gt;ctrl-g lt;/code gt; can now toggle "block mode" where multiple lines can be edited at once (this is an experimental feature). lt;/li gt;.
lt;li gt;Replace the "Insert time" menu choice with a "Toggle status line" menu choice. lt;/li gt;.
lt;/ul gt;.
lt;h2 gt;AI lt;/h2 gt;.
lt;ul gt;.
lt;li gt;Remove support for "as you type" and inserting generated text with OpenAI / GPT3. Initial support for Gemini is in the lt;code gt;gemini lt;/code gt; branch, but the whole interaction with AI /LLMs was not as useful as I thought. Perhaps a future menu option for ing would be more useful. lt;/li gt;.
lt;/ul gt;.
lt;h2 gt;Performance and size improvements lt;/h2 gt;.
lt;ul gt;.
lt;li gt;Noticeably faster rendering, due to improvements in the lt;code gt;github.com/xyproto/vt100 lt;/code gt; package. lt;/li gt;.
lt;li gt;Much smaller executable (12 MiB vs 24 MiB) due to the temporary removal of AI-support. lt;/li gt;.
lt;li gt;Update the default profile guided optimization file. lt;/li gt;.
lt;li gt;Let some string variables be constants. lt;/li gt;.
lt;li gt;Detect the current platform at build-time rather than at run-time. lt;/li gt;.
lt;/ul gt;.
lt;h2 gt;Editing Markdown lt;/h2 gt;.
lt;ul gt;.
lt;li gt;Let lt;code gt;ctrl-w lt;/code gt; in a Markdown file attempt to sort all tables in the document, when the cursor is not over a specific table. lt;/li gt;.
lt;/ul gt;.
lt;h2 gt;Programming language and file support lt;/h2 gt;.
lt;ul gt;.
lt;li gt;Better handling of tabs and spaces when saving Makefiles. lt;/li gt;.
lt;li gt;Recognize more GLSL shader types. lt;/li gt;.
lt;li gt;When pressing lt;code gt;ctrl-w lt;/code gt; in an empty Python file named lt;code gt;__init__.py lt;/code gt;, leave it empty and don't insert a Python template. lt
2.65.1218 Jun 2024 03:15
minor feature:
lt;h2 gt;New features lt;/h2 gt;.
lt;ul gt;.
lt;li gt;Copy to the clipboard if the executable starts with lt;code gt;c lt;/code gt;. For example, if lt;code gt;/usr/local/bin/copyfile lt;/code gt; is a symlink to lt;code gt;/usr/local/bin/o lt;/code gt;, then lt;code gt;copyfile somefile.txt lt;/code gt; will copy that file into the clipboard. lt;/li gt;.
lt;li gt;Paste the clipboard into a file if the executable starts with lt;code gt;p lt;/code gt;. For example, if lt;code gt;/usr/local/bin/pastefile lt;/code gt; is a symlink to lt;code gt;/usr/local/bin/o lt;/code gt;, then lt;code gt;pastefile somefile.txt lt;/code gt; will paste the contents of the clipboard into that file. lt;code gt;pastefile -f lt;/code gt; can be used if the file already exists and should be overwritten. lt;/li gt;.
lt;/ul gt;.
lt;h2 gt; lt;/h2 gt;.
lt;ul gt;.
lt;li gt;an that could happen if the terminal was resized, while signals were sent, and while the user was hammering the lt;code gt;Esc lt;/code gt; button. lt;/li gt;.
lt;/ul gt;.
lt;h2 gt;Improvements lt;/h2 gt;.
lt;ul gt;.
lt;li gt;Adjust the placement of a menu item in the lt;code gt;ctrl-o lt;/code gt; menu, when editing HTML or XML. lt;/li gt;.
lt;li gt;Move the cursor to the start of the first line when sorting a block of lines. lt;/li gt;.
lt;li gt;Do not try to expand XML and HTML tags by default. This can be enabled in the lt;code gt;ctrl-o lt;/code gt; menu. lt;/li gt;.
lt;li gt;Skip the status message if lt;code gt;SIGTERM lt;/code gt; is received. lt;/li gt;.
lt;li gt;Better syntax highlighting when editing Dockerfiles. lt;/li gt;.
lt;li gt;Temporarily remove the HTML formatting feature since it could not handle JS within HTML and was annoying. lt;/li gt;.
lt;li gt;Modify how lt;code gt;ctrl-a lt;/code gt; and lt;code gt;ctrl-e lt;/code gt; behaves if a macro is being replayed. lt;/li gt;.
lt;/ul gt;.
lt;h2 gt;Various lt;/h2 gt;.
lt;ul gt;.
lt;li gt;Build the release binaries with Go 1.22.4. lt;/li gt;.
lt;
2.65.1122 Mar 2024 07:27
minor feature:
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.
2.44.101 Oct 2021 21:25
minor feature:
Update the light and dark color theme for the GUI application ko.
Improve syntax highlighting for Go.
Update man page content detection and syntax highlighting.
Also respect the NO_COLOR environment variable when displaying the menu within o.
Add a menu option for inserting the current date.
Highlight accelerator keys in the menu.
Let ctrl-f followed by just f go to the top of the current function.
a typo in the documentation.
Update dependencies.
2.44.025 Sep 2021 16:25
minor feature:
Initial support for Bazel, D, Clojure and Go-style Assembly.
Performance improvements.
Auto-add parentheses to if/while/for/when etc statements, for C-like languages that require parenthesis around expressions, when return is pressed.
Improve syntax highlighting for Python and Go.
Make copy/paste portals also work correctly within the same file, above the portal location.
Add "Hello, World!" templates for Crystal, Object Pascal, Rust, V, Haskell, TypeScript, JavaScript, Nim, Clojure, Java, Kotlin and C#. For empty files, these are inserted by pressing ctrl-w.
Improve the Go compilation status messages.
Don't save automatically before pasting with wl-paste.
Make the man page syntax highlighting simpler.
Update dependencies.
Update the documentation.
Slightly larger default font.
Add a light theme for when the executable starts with l (this theme is subject to change).
Respect the O_FONT environment variable for changing the font.
Also support GCC
2.43.125 Aug 2021 21:05
minor feature:
Syntax highlighting for Python docstrings.
Repeated code formatting with ctrl+w.
Initial support for Amber templates.
Update documentation.
2.43.021 Aug 2021 07:25
minor feature:
Add font scaling with ctrl-+, ctrl-numpad +, ctrl-- and ctrl-numpad -.
Rename the GUI interface to ko, for easy typing. (Also, it's a word used in the game of Go, and o is written in Go).
Compile the release binaries with Go 1.17.
2.42.017 Aug 2021 16:25
minor feature:
Improve text rendering performance by profiling o and updating vt100.
an off-by-one canvas drawing that became apparent when vt100 was updated.
Add a stack trace to the error message output.
Follow the advice of the golint utility.
Use the red/black/gray theme if the o executable name starts with r.
Adjust the syntax highlighting for Go.
Let the GUI interface also handle and respond to: Page Up, Page Down, Home, End, Insert, Delete, Shift+Delete, Ctrl+Insert, Shift+Insert, F1, F2, F3, F4, F10 and F12.
Minor changes to the desktop shortcut for the GUI interface.
Better default font logic in the GUI interface.
Update documentation.
Update dependencies.
2.41.313 Aug 2021 06:05
minor feature:
Let SIGUSR1 unlock locked files.
Change the wrap behavior so that long lines are not wrapped by default when typing, for some file types.
Update the documentation.
Show the file chooser dialog if no filename is given.
More graceful exits with regard to file locking.
Improve the VTE color scheme.
Add new icons for the desktop shortcut.
2.41.109 Aug 2021 14:45
minor feature:
Limit how much memory the undo buffers can use before starting to re-use undo buffers.
the man page detector. Some unusual Markdown files were mistaken for man pages.
Refactor code that related to themes.
Minor changes to the desktop shortcut.
2.41.005 Aug 2021 07:45
minor feature:
Minor improvements to the man page syntax highlighting.
Respect the XDG_CACHE_HOME environment variable.
Add a GUI application written in C++ that launches o, using libvte.
Update documentation.
2.40.126 Jul 2021 10:25
minor feature:
an with rendering man pages (try MANPAGER=o to use o as a man-page viewer).
2.39.229 Jun 2021 06:45
minor feature:
Improve syntax highlighting, tab completion and default settings for Clojure.
Improve syntax highlighting and tab completion for Odin.
Add a template feature: insert "Hello, World" for empty Go, C, C++, Odin, Scala, Clojure, PKGBUILD, Python and Zig files when ctrl-w is pressed.
an where the "jump to error" feature would jump to the line above the error, when ctrl-space was pressed.
an with bookmarks, so that they are not moved when lines above are deleted.
Improve the spinner animation.
Refactor some of the code.
Update dependencies.
Update documentation.
2.38.105 Jun 2021 15:25
minor feature:
a minor where the loading/saving spinner would not be stopped if there was an error loading/saving the file.
Enable Tab completion after.
Adjust keywords used to highlight Go code.
Use string replacers (strings.NewReplacer) for a slight increase in performance.
Slight performance improvement of the syntax highlighter.
Adjust the default indentation for Odin.
2.37.327 May 2021 14:45
minor feature:
an where the text was not colored red if the file was read-only.
an where / and */ in comments in shell scripts would syntax highlight the line with the wrong colors.
Never lock files named COMMIT_EDITMSG.
If o is launched as ro the red/black theme is also used, because a symlink to o named red may conflict with the ed editor.
Update dependencies.
Update documentation.
2.37.216 May 2021 08:05
minor feature:
Improve C and C++ syntax highlighting.
Show a spinner also for file saving operations that takes a certain amount of time (not only file loading operations).
If o is on a slow disk (measured when loading the file), don't lookup the last line location in the ViM and NeoVim configs.
Update documentation.
Update dependencies.
Some refactoring.
2.37.112 May 2021 06:25
minor feature:
The return key behavior at the end of a full screen of text in a new file.
Rainbow parenthesis coloring for lines that contains a # as part of a string.
Let the rainbow parenthesis feature also include square brackets ( and ).
Improve the C# syntax highlighting.
2.37.007 May 2021 03:15
minor feature:
Add support for C#.
Add support for the Battlestar programming language.
Update documentation.
Update dependencies.
2.36.128 Apr 2021 03:15
minor feature:
Improve syntax highlighting of / */ comments in the middle of a line.
Bring back support for Go 1.11. (1.16 is recommended, though).
Improved XML-detection.
an with parsing single-line comment markers.
Improve shell script syntax highlighting support.
Syntax highlight pointer arrows in C and C++ (- ).
Some refactoring.
Update dependencies.
2.36.009 Apr 2021 09:25
minor feature:
Autocompletion of programming language keywords when pressing Tab.
an where 033 7l would be used instead of 033 ?7l for disabling line wrap. Thanks to Tom Szilagyi for the help with this!.
Support for formatting /etc/fstab files with the help of fstabfmt.
Initial support for Scala.
Minor changes to the Go syntax highlighting.
Immediately save the file if SIGTERM is received.
Recognize that files saved to /usr/bin should normally be executable.
Improve the JSON detection.
Show the current file mode when pressing ctrl-g.
an where lines containing - in C++ would make most of the line appear in gray.
Minor changes to the --help output.
Update dependencies.
2.35.125 Feb 2021 03:15
minor feature:
an where ctrl-s would move the cursor in a non-obvious way and cause problems when inserting text at the end of long lines.
Improve the Markdown to PDF export, using pandoc.
Respect the PAPERSIZE environment variable.
Draw the correct theme immediately when o starts. Don't blink.
Use the red/black theme by default if the shell path starts with /usr/local/bin (BSD-likes).
Use the default theme if the executable name is default.
Add csh shell script detection.
Add initial Nroff support, for writing man pages.
View Jupyter Notebook files (.ipynb) as JSON.
Add support for.te files (SELinux policy files).
Initial support for the Odin programming language.
Minor improvements for building Zig sources.
Format XML and HTML by pressing ctrl-w, with the help of the tidy utility.
Improve the syntax highlighting for regular text files.
Add syntax highlighting of comments for HTML and XML.
Minor improvements to the Go, Kotlin and Shell syntax highlighting.
Switch the CI configuration from Travis CI to GitHub workflows.
Save the last used command to /.cache/o/last_command.sh.
Improve the help output and the error message if no filename is given.
Compile with Go 1.16.
Update documentation.
Update dependencies.
2.35.009 Jan 2021 03:15
minor feature:
Make it easy to preview HTML files at the press of ctrl-space by using xdg-open.
Support for column numbers as a third argument when launching o.
an where the cursor was hidden when moving left on a long line, after having scrolled to the right.
return key behavior for long lines.
backspace key behavior when removing indentation.
Don't move to the start or end of the line when ctrl-s is pressed.
syntax highlighting for numbered lists in Markdown, and lists where each item spans more than one line.
Update dependencies.
Update documentation.
2.34.131 Dec 2020 06:23
minor feature:
- Add support for formatting HTML with ctrl-w if tidy is installed.
- Improve the Ada support.
- Minor improvement for Go syntax highlighting.
- Minor improvement for how Rust executables are built.
- Improved Rust syntax highlighting, including not interpreting #! ...(...) directives as shebangs.
- Save the file before pasting using external utilities like wl-paste.
- Make the portal feature per-user instead of per-system.
- Better support for Zig. Recognize if SDL2 is in use and add -lsdl2, as a special case, only if there is no build.zig file.
- When editing PKGBUILD files and selecting Call Guessica from the command menu, make it possible to undo.
- Also support building Kotlin .kts files with ctrl-space (not just .kt).
- Fix compilation for FreeBSD by using a specific commit of github.com/pkg/term.
- Update dependencies.
- Update documentation.