Releases: Akuli/porcupine
v2026.02.16
This is the first release in quite a long time: it has been almost two years since the last release of Porcupine.
Porcupine now works on Python 3.10 and newer versions.
Langservers don't work at all. So if you are on Windows and you used the Porcupine installer to get Porcupine, you may want to skip this release so you can continue to use langservers.
Running commands:
- When running commands without a terminal, Porcupine will now resize the output area so that it's always visible. Previously it was possible to resize it so small that you wouldn't see any output, and Porcupine would remember that size when you ran a command later. Thank you ethical-haquer for fixing this.
- The "run in terminal" feature now works better on Linux (and BSD) systems, including those without the
x-terminal-emulatorsymlink. Thank you Tuomas and 8manz for fixing this. - Porcupine no longer uses the
porcupine-venvvirtual environment by default when running Python programs. It is intended to be used only for running Porcupine itself, and previously Porcupine treated it like any other venv. Thank you ethical-haquer for fixing this.
Other changes:
- You no longer need to double-click folders in the directory tree to open them. Thank you celltoolz for fixing this.
- Porcupine no longer adds a newline character when you attempt to save an empty file. Thank you Moosems for fixing this.
- Many dependencies were updated. Some were removed.
akuli.github.io/porcupinewas deleted. The good parts of that documentation are now in thedev-docfolder.- The blockcursor plugin was deleted.
v2024.03.31
- There are two new easter eggs in the about dialog. Happy Easter :)
- Porcupine's documentation has been updated and rearranged. The documentation is now clearly split into two folders, user-doc for using Porcupine and dev-doc for developing Porcupine. Both folders also contain newly written documentation. Porcupine Wiki was deleted, and deleting
akuli.github.io/porcupineis planned. - The contents of the Help menu at top were updated. For example, User Documentation opens the
user-docfolder. - Porcupine now checks for updates when it starts. Many other programs do this in an annoying way (with e.g. a popup message). Porcupine notifies you about a new version by showing a message in the status bar instead. If this is still too annoying, you can easily disable update checking in Porcupine Settings or in the plugin manager.
- All right-click menus are now offset a little bit from the cursor location, so that you don't accidentally click the first item in the right-click menu. Thank you ethical-haquer for fixing this.
v2024.03.09
Bug fixes:
- Installing Porcupine no longer fails on MacOS. In previous versions, there was an error caused by the PyYAML dependency.
- The File β Quit menu item works again. Previously it was always grayed out, and nothing happened when it was clicked. Thank you Tuomas for fixing this.
- The Filetypes menu no longer displays the wrong filetype in some situations. Thank you Tuomas for fixing this.
- Porcupine should no longer segfault in a corner case that happens only on some Linux systems with the
Amiri Quran Coloredfont installed (see issue #1442). This is technically a bug in Tk, but Porcupine now contains a workaround for the bug.
v2024.02.07
Bug fixes:
- Porcupine no longer crashes on Mac when you try to open a file. Thank you ThePhilgrim for fixing this.
- When the stop button (or other buttons) in the top right corner of the command output area are hovered, they display tooltips that explain what the buttons do. These tooltips no longer go partially off the screen when the Porcupine window is maximized or dragged to the right edge of the screen. Thank you lawson89 for fixing this.
- The directory tree now colors file names with non-ASCII characters correctly based on their Git status. For example, when a file is
git added, it will now become green regardless of its file name. In previous versions, files named e.g.ΓΆrkkiΓ€inen.txtwere always white. - On some systems, such as Debian 12, the font chooser in Porcupine Settings now shows more fonts than before, and doesn't show a confusing warning triangle when the default font is selected.
- In previous versions, the "Jumping to previous/next anchor cycles to end/start of file" setting didn't work when the file contained only one anchor point. Thank you ThePhilgrim for reporting this.
Other changes:
- Porcupine no longer runs on Python 3.7.
- Ctrl+Y does redo (that is, reverting a Ctrl+Z) also on Linux. Previously Linux users needed Ctrl+Shift+Z for redo.
- Ctrl+/ now comments selected lines, somewhat similarly to typing the filetype's comment character (e.g.
#in a Python file). - Sort Lines in the Edit menu now takes only the lines with the same indentation when nothing is selected. This is convenient for sorting long Python lists and dicts.
- Previously the encoding chooser was just a big list of encodings with no explanation. Now it's easy to choose between UTF-8 and Latin-1, and the encoding chooser explains their advantages and disadvantages.
v2023.06.27
New features:
- Porcupine now looks quite different than before, because it uses the sv-ttk themes. You can choose between dark and light theme in settings.
- When running programs with output going to the terminal window (try Shift+F5), Porcupine now supports keyboard input. For example, programs that use Python's
input()function now work. - Pastebinning is now done by right-clicking selected text. There is no longer a "Pastebin" menu in the menubar.
Bug fixes:
- The editor now scrolls automatically to keep the cursor visible when pressing Ctrl+Delete or Ctrl+Backspace.
- Porcupine now autoindents slightly better when typing into a JSON file. Thank you Moosems for fixing this.
- On Linux, if you use the launcher, you can now choose Porcupine in "Open with" menus. For this to work, you may need to uncheck and check again "Show Porcupine in the desktop menu system" in the settings.
v2023.03.11
New features:
- On Linux, there's a new and easy way to launch Porcupine without using the terminal. In settings, you can check "Show Porcupine in the desktop menu system", which makes Porcupine appear in the operating system's menu like most other applications. There are more instructions in the README.
- There is a new menu that appears when right-clicking the main editing area. It doesn't contain much yet, but more things will probably be added into it in subsequent releases. Thank you ArchKats for designing and implementing the new right-click menu.
- When right-clicking a folder in the directory tree, there is a new option "Open in terminal". It is equivalent to opening a terminal or command prompt as usual and then going to the right-clicked folder with
cd some/path/to/the/folder. Thank you Tuomas for implementing this. - Porcupine now recognizes BOMs in text files. Previously UTF-8 files with a BOM would get a weirdly behaving blank character in the beginning. Thank you Tuomas.
Bug fixes (both by Tuomas):
- Dragging and dropping files to Porcupine now works even when the file names contain non-ASCII characters.
- File types selected with the Filetypes menu in the menubar are now remembered when Porcupine is restarted.
v2023.01.19
Fixes a bug where on some computers, the minimap would show keywords and other highlighted parts of the code with a ridiculously large font (see #1171). The minimap is the narrow view of the file being edited on the side.
v2022.11.25
New keyboard shortcuts and UI fixes:
- There are new key bindings for focusing various parts of Porcupine without clicking them: Alt+Shift+D for directory tree, Alt+Shift+F for the file being edited, and Alt+Shift+C for command output. Thank you lawson89 for adding the new key bindings.
- The directory tree now opens the selected file when pressing the Enter key. Previously this worked only for directories, and to open a file, you needed to press the right arrow key or double-click. Thank you lawson89.
- The buttons related to running commands now have tooltips that explain what they do. You no longer need to guess based on the images. Thank you lawson89.
Filetype-specific fixes and improvements:
- In Python files, comments placed on the same line with a decorator are now syntax highlighted as comments.
- In Rust files, function names and a few more keywords are now highlighted correctly.
- There are new default commands for Rust. For example, pressing F5 in a Rust file does
cargo runby default. As with any filetype, you can press Shift+F5 (or Shift+F6, Shift+F7, Shift+F8) to run any command you want. - Porcupine now supports
.pyxfiles slightly better than before. Thank you lawson89.
Other improvements:
- On Windows, the Porcupine installer now uninstalls and reinstalls faster than before, because it does not display the name of every file it deletes.
- When restarted, Porcupine now remembers whether or not the window was maximized. Previously it would only remember the location and size of the window, so restarting a maximized Porcupine would result in a window that is big but not in a maximized state. Thank you lawson89 for fixing this.
- The full-screen mode (F11 or Full Screen in the View menu) now works better with window managers that have their own full-screening feature. Thank you Tuomas for testing this.
- The Filetypes menu now shows which filetype is currently selected. Thank you lawson89.
- The plugin manager is no longer a plugin, so it is not possible to use the plugin manager to disable the plugin manager. Thank you aloner-pro for fixing this.
- In the Run menu, there is a new built-in Python prompt that runs within the Porcupine process. It is meant to be used for developing and debugging Porcupine. For example,
get_tab_manager().tabs()[0].textwidget['bg'] = 'red'sets the color of the first open tab.
v2022.08.28
Yesterday's release (below) turned out to be broken: syntax highlighting didn't work at all. This release fixes that.
v2022.08.27
The main feature in this release is Porcupine's new syntax highlighter. It is faster and less buggy than the old syntax highlighter. The old and new highlighters are also known as "pygments highlighter" (old) and "tree-sitter highlighter" (new), named after the libraries they are based on.
The tree-sitter highlighter is currently used for C, JSON, Markdown, Python, Rust and TOML files. Other filetypes still use the pygments highlighter. As with any other problem with Porcupine, please let me know by creating an issue if the pygments highlighter isn't working with a filetype you use.
Thank you rdbende for working on the new highlighter with me, and for your work on Porcupine in general :)
Mac fixes:
- "Save As" no longer crashes Porcupine on some Macs. Thank you Moosems for reporting this and helping me figure out what the problem was.
- By default, the Alt key is no longer used for key bindings on Mac. For example, the binding for setting an anchor on Mac is now Control+Shift+a instead of Alt+Shift+A. Many key bindings that used Alt didn't work because of how Alt is also used for entering special characters. Thank you Moosems for fixing this.
Filetypes fixes:
- The Filetypes menu is now in alphabetical order. Thank you sokratisvas for fixing this.
- Settings from
filetypes.tomlanddefault_filetypes.tomlare now merged recursively. This is useful for giving custom langserver options without copy/pasting the default configuration fromdefault_filetypes.toml.
Other fixes and improvements:
- The line numbers now work in files that are more than 9999 lines long. Thank you Moosems for fixing this.
- Porcupine no longer displays errors on the terminal when right-clicking
(empty)items in the directory tree. Thank you Tuomas and nicolafan for fixing this. - Renaming a currently opened file in the directory tree now works as expected. Previously you would often get an error saying that the file isn't found, and then you would have to close and reopen the file.