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.62.6

Published by xyproto over 1 year ago

Features and improvements

  • Add initial support for building Scala Native projects.
  • Enable the feature that adds missing parenthesis, for Scala as well.
  • Add releases for FreeBSD and NetBSD (for 32-bit x86).
  • Improve the performance of the function that fetches lines and the function that right trims lines.
  • Fix an issue that could happen in rare cases when editing code.
  • Improve error messages.
  • Improve the help output.
  • Update the documentation.

Code quality and profiling

  • Improve a few instances where code did nothing (ineffassign).
  • Fix the CPU profiling (when building with make trace and running with ./o -cpuprofile cpu.pprof somefile.txt and then analyzing the file with go tool pprof and ie. top30).
  • Fix all typos in comments, as reported by Go Report Card.
  • Update all dependencies.
orbiton - Orbiton 2.62.5

Published by xyproto over 1 year ago

  • Fix an issue with using o as a man page viewer on Arch Linux (using MANPAGER=o).
orbiton - Orbiton 2.62.4

Published by xyproto over 1 year ago

  • Make it possible to insert a symbol by pressing ctrl-_ and type in a 2-letter digraph (same digraphs as ViM uses).
  • Use timestamps in the location history, so that it can be culled/rotated and not grow too much over time.
  • Make it possible to press ctrl-f and search for a blank string or a space.
  • Disallow saving a file concurrently and then exiting the editor at the same time.
  • If ctrl-t is pressed while editing C or C++, but there is no corresponding source or header file to switch to, use the macro behavior instead.
  • Make it possible to press esc repeatedly to bring up the ctrl-o menu.
  • Add an -n flag for not writing to ~/.cache/o (where the location history, search history, game highscore etc. are kept).
  • Improve how the Markdown table editor draws tables.
  • Drop the initial status bar help message, since both --help and a man page are available.
  • Improve the help output and help text.
  • Some refactoring.
  • Update the documentation.
  • Update the dependencies.
orbiton - Orbiton 2.62.3

Published by xyproto over 1 year ago

Markdown Table Editor

  • Improve the look of the Markdown table editor.
  • When editing Markdown tables, trim the right column if it is empty.
  • When pressing ctrl-t on an empty line in a Markdown table, insert an empty table and open the Markdown table editor.
  • Display "quick help" the first time the Markdown table editor is shown, at the bottom of the screen.

The VTE/GUI front-end application

  • Run in fullscreen mode by default.
  • Use a slightly smaller default font on macOS.
  • Fix the application so that the edig symlink uses the intended theme.
  • Make starting and quitting more responsive on both macOS and Linux.

General

  • Add initial support for the Mojo programming language.
  • Minor improvements for the Nim programming language.
  • Fix the Makefile for macOS.
  • Rename two symlinks so that they are shorter.
  • If the "fix as you type" feature is enable and an error occurs, disable the feature.
  • Update dependencies.
  • Update documentation.
  • Update the web page.
orbiton - Orbiton 2.62.2

Published by xyproto over 1 year ago

  • Add a simple web page (https://orbiton.zip).
  • Add build flags to the Makefile.
  • Require a total of 5 repeated presses of Esc as the alternative method of launching the ctrl-o menu (up from 4). This is to not get in the way of clearing a recorded macro by pressing Esc repeatedly.
  • Make it possible to press ctrl-s while playing the built-in game, to save the pixels as a .png file, as an easteregg within an easteregg.
  • Update the man page and documentation.
orbiton - Orbiton 2.62.1

Published by xyproto over 1 year ago

  • Fix the release script, ref. #15.
  • Fix an issue with pressing backspace near the end of long lines, which made the horizontal scrolling misbehave.
  • Let o also work as a man page viewer on OpenSUSE.
  • Add documentation for how to set up o on OpenSUSE.
  • For the GUI/VTE frontend og, use usleep instead of sleep.
  • Let ctrl-w format Markdown tables, when the cursor is on one.
  • Let ctrl-s to save the file also work when editing a Markdown table with the Markdown table editor.
  • Only update the Markdown table when exiting the Markdown table editor if changes were made.
  • Do not let ctrl-n jump to matching parentheses, only ctrl-p.
  • Make the theme selection in the ctrl-o menu more descriptive.
  • Let the ctrl-o menu also show the current program version.
  • When pasting a file on the command line with o -p, mark the resulting as executable if it is a script (if it has a .sh file extension, is pasted in a bin directory like /usr/bin or if the file contents starts with a shebang).
  • Add O_THEME as an alias for the THEME environment variable name.
  • Update dependencies.
orbiton - Orbiton 2.62.0

Published by xyproto over 1 year ago

  • Use the betteralign utility to optimize structs.
  • Improve the man-page functionality so that it also works well on Fedora.
  • Always use tabs for makefiles.
  • Let ctrl-n and ctrl-p jump to matching parenthesis or bracket, but only if the cursor is on one and if the previous keypress was not ctrl-n/ctrl-p. This way, one can navigate to a parenthesis with the arrow keys and jump to the matching one with ctrl-n/ctrl-p, but scrolling down repeatedly with ctrl-n or up with ctrl-p will not be stopped.
  • Let ctrl-g show a friendly help message, but when ctrl-g is pressed a third time, let it either go to definition or toggle the status bar at the bottom. Go to definition is a new experimental feature, is only tested for Go code, and currently only works within the same file.
  • Press Esc 4 times in a row as an alternative way of opening the ctrl-o menu.
  • Let ctrl-space render Markdown files to HTML.
  • Add a menu option in the ctrl-o menu for rendering Markdown files to PDF with pandoc.
  • Add a "fix as you type" feature that can be enabled in the ctrl-o menu if the OPENAI_API_KEY, OPENAI_KEY or CHATGPT_API_KEY environment variables is set to a valid OpenAI API key. Every time return is pressed, the line will be sent to ChatGPT and be corrected. This is an experimental feature.
  • Also save the search history for "search and replace" (ctrl-f, then the tab key and then return).
  • Fix a bug in the WordAtCursor function.
  • Add a command line flag for clearing all file locks.
  • Show a status message when pasting through portals.
  • Add a Markdown table editor that can be activated by pressing ctrl-t while the cursor is on a Markdown table. Within the table editor, ctrl-n can be used for adding columns, ctrl-d can be used for deleting empty columns. return, tab and the arrow keys also work, see the README.md file for more information.
  • Let ctrl-w format Markdown tables, if the cursor is on one.
  • Add a menu option for sorting a block of lines.
  • Minor improvements to the Agda symbol insertion menu.
  • Update dependencies.
  • Update documentation.
orbiton - Orbiton 2.61.0

Published by xyproto over 1 year ago

Orbiton 2.61.0

  • Optimize the function that reads in files, and also add better support for loading large single-line files, like some SVG files.
  • Add a -c flag, for directly copying a file to the clipboard.
  • Add more tests and benchmarks.
  • Remove an unused function.
  • Update dependencies.
orbiton - Orbiton 2.60.6

Published by xyproto over 1 year ago

Orbiton 2.60.6

  • Fix the detection of Makefile indentation.
  • Add a -p flag for pasting the clipboard contents to a new file.
  • Let -f -p FILENAME paste the clipboard to a file, but also overwrite the file if it exists.
  • Improve the terminal title when using o to read man pages with ie. MANPAGER=o man ls.
  • Add flags to the README.md file.
  • Update dependencies.
orbiton - Orbiton 2.60.5

Published by xyproto over 1 year ago

Orbiton 2.60.5

  • Ignore warnings and notes from the C compiler when building Go programs that uses C.
  • Fix the mode dependency so that it uses the first 512 bytes to detect the file type. Some man pages have very long first lines.
  • Fix issues with reading data from stdin, ref #14.
  • Add binary/text detection for data given on stdin.
  • Improve the version.sh script so that it also works on macOS.
  • Improve the release.sh script so that it compiles for multiple platforms in parallel.
  • Update documentation.
  • Update dependencies.
orbiton - Oribton 2.60.4

Published by xyproto over 1 year ago

Performance improvements

  • Load files faster, with fewer system calls.
  • Postpone loading some files when o starts, and load them later on as needed.

Programming language support

  • Let double ctrl-space build and run Odin programs.
  • Also let the automatic iferr feature work for Odin.
  • Add initial support for Arduino and .ino files.

Syntax highlighting

  • Syntax highlight italics in Markdown, for some cases.
  • Improve syntax highlighting of URLs in source code.
  • Simplify some of the Python syntax highlighting code.
  • Minor improvement of the syntax highlighting for Nroff files.

Building and running

  • Improve the logic for finding the compiled executable name.

ChatGPT / OpenAI

  • Make it possible to enter an OpenAI API key from the ctrl-o menu.
  • Refresh the cursor after generating code.
  • Let Generate, generate, Write and write in single-line comments, with a blank line following, trigger code generation.
  • Let lines starting with ! trigger code generation.

GUI/VTE frontend and macOS

  • Change the default font for macOS.
  • Let the cmd key act similar to the ctrl key on macOS.
  • Add a Build option in the ctrl-o menu for macOS, since ctrl-space might not register.

General

  • Update documentation.
  • Update dependecies.
  • Update the CI configuration.
orbiton - Orbiton 2.60.3

Published by xyproto over 1 year ago

  • Fix an issue with reading the OPENAI_KEY environment variable.
  • Fix the file mode for the temporary search and location history files.
  • Let search actions be part of recorded macros.
  • Check that the next line is blank before generating code with a comment that starts with Write.
  • Add a CMake template.
  • Add zombies to the little built-in game.
  • Add experimental support for macOS for the VTE GUI application.
  • Update documentation.
  • Update dependencies.
orbiton - Orbiton 2.60.2

Published by xyproto over 1 year ago

  • Update the .desktop file.
  • Update the release script.
  • Fix a typo in go.mod that could cause issues for users of go install.
  • Update documentation.
  • Update dependencies.
orbiton - Orbiton 2.60.1

Published by xyproto over 1 year ago

  • Also rename the release files after the project was renamed from O to Orbiton.
  • Update dependencies.
orbiton - Orbiton 2.60.0

Published by xyproto over 1 year ago

  • Project rename, from o to Orbiton. The editor executables are still:
    • o - for the terminal
    • og - for the VTE GUI
  • Add built-in support for formatting /etc/fstab files.
  • Stop the arrow keys from doing anything while code is being generated an inserted by ChatGPT.
  • Support more environment variable names for the OpenAI key. Now these are supported: CHATGPT_API_KEY, OPENAI_API_KEY or OPENAI_KEY, in that order.
  • Update dependencies.
  • Update documentation.
orbiton - o 2.59.5

Published by xyproto over 1 year ago

  • Don't call os.Getenv several times. Call os.Environ once and then cache the variables. This is handled automatically by the github.com/xyproto/env/v2 package. There is a tiny performance improvement for o because of this.
  • Add a Makefile target for building with the trace build tag.
  • Set the default ChatGPT temperature to 0, for generating code and to 0.8 for generating other text.
  • In addition to ! for filetypes other than Markdown, only use Write and write as "trigger words" for starting to generate code or text with ChatGPT (and only if the CHATGPT_API_KEY is set).
  • Update dependencies.
  • Update documentation.
orbiton - o 2.59.3

Published by xyproto over 1 year ago

Fixes

  • Fix a bug that happened when trying to run a program by pressing ctrl-space twice.
  • Stop the search function from saving duplicate entries in a row.

New features

  • Add support for generating code with ChatGPT, if the API key is set and a line is prefixed with ! or ie. // generate a function that .... and return is pressed.
  • Make it possible to view images on the terminal (.png, .jpg, .jpeg, .gif, .ico and bmp are supported. If CGO_ENABLED is not set to 0 at compile time, .webp is also supported). This is an experimental feature and how the images are scaled is not always optimal.

Minor improvements

  • Read some environment variables only once.
  • Remove use of rand.Seed that is deprecated by Go 1.20 (used by the little built-in game).
  • Compile the release binaries with Go 1.20.
  • Also support Go 1.16 and 1.17 again.
  • Update the documentation.
orbiton - o 2.59.0

Published by xyproto over 1 year ago

  • Improve the syntax highlighting for Go, man pages, configuration files and Python.
  • Update the .desktop file.
  • Initial support for Koka and Haxe.
  • Skip /tmp/tmp.* files when writing the location history.
  • Fix the use of ktlint when formatting Kotlin.
  • Minor improvements to the Synthwave and BlueEdit themes.
  • When pasting, try pasting from the primary clipboard as well.
  • Make tests pass on macOS.
  • Try to run more programs by default, when ctrl-space is pressed twice.
  • Make the status header in the game slightly more useful.
  • Use go4.org/bytereplacer for better performance when replacing bytes.
  • Update documentation.
  • Update dependencies.
orbiton - o 2.58.0

Published by xyproto almost 2 years ago

o 2.58.0

Highlights

  • Detect tabs/spaces when a file is opened.
  • Add support for pbcopy and pbpaste on macOS, and make the Makefile more macOS-friendly.
  • Make ctrl-space also run programs when pressed a second time. The last lines of the output will be shown on screen. For now, this feature is only supported for simple Go, Kotlin and Rust applications.

Minor changes

  • Recognize the ctrl-_ hotkey.
  • Minor changes to the chmod +x behavior, for scripts.
  • Use a g suffix for all GUI-related executables and symlinks.
  • Minor changes to how ctrl-c behaves.
  • Improve the light theme for dark backgrounds.
  • Update documentation.
  • Update dependencies.
orbiton - o 2.57.0

Published by xyproto about 2 years ago

Highlights

  • Make it possible to open, edit and save gzip-compressed files with a .gz ending.
  • Add the Synthwave theme (launch o with a sw symlink, launch ko -s or set THEME=synthwave).
  • Add initial support for GDScript (used by Godot).

Other changes

  • Make the color of unmatched parentheses themeable.
  • Handle ReStructuredText differently.
  • Also save when copying text with ctrl-c, since ctrl-c may interrupt the program in some terminal emulators.
  • Make it possible to build *_test.go files with ctrl-space.
  • Highlight static differently for C (and C++).
  • Minor improvements to the BlueEdit theme.
  • Fix the ctrl-~ hotkey for the Linux console.
  • Set up signal handlers in goroutines, for faster startups.
  • Make it possible to trace with fgtrace if the trace build tag is used.
  • Improve the syntax highlighting of old Pascal programs.
  • Let ctrl-i while in debug mode change the behavior of ctrl-space and ctrl-n between "step into" and "step next".
  • Modify the version.sh script to only use sed.
  • Update dependencies.
  • Update documentation.
Package Rankings
Top 5.57% on Proxy.golang.org
Badges
Extracted from project README
FOSSA Status Go Report Card License Packaging status FOSSA Status Stargazers over time
Related Projects