Skip to content

Releases: Akuli/porcupine

v2024.03.31

30 Mar 23:57
Compare
Choose a tag to compare
  • 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/porcupine is planned.
  • The contents of the Help menu at top were updated. For example, User Documentation opens the user-doc folder.
  • 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

08 Mar 23:18
Compare
Choose a tag to compare

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 Colored font installed (see issue #1442). This is technically a bug in Tk, but Porcupine now contains a workaround for the bug.

v2024.02.07

07 Feb 12:24
Compare
Choose a tag to compare

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.txt were 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

27 Jun 20:25
Compare
Choose a tag to compare

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

10 Mar 22:35
Compare
Choose a tag to compare

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

19 Jan 21:19
Compare
Choose a tag to compare

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

25 Nov 15:18
Compare
Choose a tag to compare

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 run by 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 .pyx files 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

27 Aug 21:07
Compare
Choose a tag to compare

Yesterday's release (below) turned out to be broken: syntax highlighting didn't work at all. This release fixes that.

v2022.08.27

27 Aug 13:43
Compare
Choose a tag to compare

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.toml and default_filetypes.toml are now merged recursively. This is useful for giving custom langserver options without copy/pasting the default configuration from default_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.

v2022.07.31

31 Jul 20:22
Compare
Choose a tag to compare

Porcupine now uses calver:
from now on, a Porcupine version is simply its release date in the "year.month.day" format.

Windows improvements:

  • Porcupine no longer looks blurry on some Windows installs. Thank you VideoCarp for finally fixing this old issue!
  • Alt+F4 now works on Windows. Previously it worked on some Windows systems and didn't work on others.

Directory tree:

  • There are a couple new options that appear when right-clicking: "Copy full path to clipboard" and "New directory here". Thank you ihammadasghar and TyGuy54.
  • Items in the directory tree are indented less than before. This makes the directory tree fit in a narrow area when there are many nested directories.
  • Some keyboards have a Menu key (also known as App key) that usually does the same thing as right-clicking. This now works in the directory tree.
  • The directory tree runs git status internally to figure out how to color each item (green means your changes will be included in the next commit, for example). It no longer kills git if it doesn't complete within a few seconds. This prevents lock file errors that happened when trying to run git afterwards.

Pastebin menu:

  • When you pastebin for the first time, you now get a dialog asking whether you really wanted to do it. In other words, you can no longer accidentally send your code to a pastebin service.
  • Indentations are now removed when pastebinning. Previously indentation was removed only from the first line of code when pastebinning to dpaste.com. This was annoying when pastebinning a part from the middle of a function, for example. (If you select some text before pastebinning, only the selected text is pastebinned.)

Running programs without an external terminal window:

  • Porcupine no longer freezes if the program produces a lot of output, e.g. print inside an infinite loop.
  • On Linux and MacOS, there is now a pause button that can be used to stop and continue running the program. This is useful if you made a game but you didn't implement pause yet, for example. Thank you rdbende for implementing this.
  • Porcupine no longer stops showing the output in a corner case. This corner case happened frequently when printing large amounts of random bytes in Python.
  • Porcupine now recognizes file names and line numbers of the format (filename:linenumber) and makes them clickable. Recognizing file names and line numbers this way was added in Porcupine 0.99.0, and this release only adds one new format.

Other new features and improvements:

  • You can now decide whether Porcupine should remember your opened tabs when you close and reopen it. There's a new checkbox in Porcupine Settings (in the Settings menu).
  • You can now select text and press Ctrl+G to search the selected text on Google. This is useful if you don't know what a function does, for example. Thank you okankamilsen for implementing this.
  • Hover popups now appear with some delay: if you move your mouse over a function call, you will now have to wait about half a second before you see a description of what the function does. This makes the hover popups less annoying and reduces CPU usage when moving the mouse. Thank you rdbende for implementing this.
  • The color scheme buttons in Porcupine Settings can now be accessed with keyboard in addition to clicking them.
  • It is no longer possible to open several instances of the same dialog. For example, previously it was possible to open Plugin Manager even if Plugin Manager was already opened. Thank you rdbende for fixing this.
  • The encoding button (at bottom right, usually displaying utf-8) now becomes wider if you select an encoding with a long name. Thank you rdbende and Moosems.

Removed features:

  • It is no longer possible to use langservers with local TCP sockets. Use stdio (i.e. stdin and stdout) instead. So far I haven't seen any langservers that can't be used with stdio.