- Lua 91.1%
- C 6%
- Makefile 2.9%
Parchment
Write and edit plain text.
Features
- write and edit text files
- find and replace
- jump to line by number
- optimized for proportional type
- quickly hop between files
Anti-Features
- text formatting
- regular expressions
- line numbers
- file gutters
- monospace
- tab expansion
- syntax highlight
Rationale
Plain text editors are too complicated, and are overly reliant on monospace type to the point where it's often difficult to use proportional. Parchment was designed to provide a good experience with proportional type by default while also providing only those features which are absolutely necessary for editing code and prose in plain text.
Most of writing and software development involves writing new text rather than modifying existing text. Because writing new text is virtually the same experience between all text editors, there is very little time efficiency to be gained in optimizing the text editing experience beyond a few simple features before reaching a point of diminishing returns. Worse still, the increasing complexity of a text editing interface negatively impacts usability to the point where the aforementioned diminishing returns are often negated. In other words: most text editing features are distractions of little or negative value to the task at hand.
Extra Functionality
Parchment's find-and-replace functions are intentionally limited for simplicity, with only a single advanced feature to note: If the current selected text contains one or more matches, then a new "Replace in Selection" button will be presented allowing for quick localized changes.
To facilitate clean text editing, Parchment will fix files when saving. Specifically, whitespace at the end of each line will be removed and the file itself will be guaranteed to terminate in exactly one newline character, making Parchment-written files properly suitable for use in command-line programs.
Parchment refuses to open non-textual and non-UTF-8 files; Any file containing a NUL character (byte of value 0x00) or any invalid UTF-8 sequence will be rejected with a warning.
When pressing the tab key, Parchment will always insert tab characters. For files and projects requiring spaces as indentation, it's recommended to use the "Modify Formatting" dialog which can be opened from the secondary-click context menu when a file is open. For editing code in an existing project using non-tab indentation, it's recommended to use this dialog to change the indentation to tabs, make your changes, then reindent to the number of spaces the project expects once it's time to save.
Building
Parchment compiles with Flatpak Builder.
flatpak-builder build ca.vtrlx.Parchment.Devel.json --user --install --force-clean
This will install the development version of Parchment. Run using flatpak run ca.vtrlx.Parchment.Devel or from your desktop's application launcher.
Localization
Parchment uses gettext for localization. These instructions assume you have it installed on your system.
To create a message file for your desired language, execute this command in a terminal from Parchment's root folder:
make po/<LANG>.po
<LANG> should be replaced by the two-letter language code for the language you're translating the app to, optionally followed by an underscore _ character and a two-letter country code in ALL-CAPS i.e. fr for French or fr_CA for Canadian French.
This command creates a file in the po/ folder named <LANG>.po.
Next, edit the <LANG>.po file and add your translated strings. I recommend using Translation Editor for this.
The last strings to localize are for the ca.vtrlx.Parchment.desktop and ca.vtrlx.Parchment.Devel.desktop files. Add new lines for the Comment, Keywords, and (if applicable) Name keys in all sections of both files. Be sure to keep the translated lines in alphabetical order with respect to the language codes.
Once finished, try running Parchment in your language using the testing instructions above. If all the strings appear to have been translated, commit your finished <LANG>.po file to Git, push the commit to a branch under your control, and submit a pull request on Codeberg.
Updating a Localization
If the application is updated and the translation needs to be changed, again run this command in the project's root folder:
make po/<LANG>.po
This will update the given .po file with the new translatable strings. The updated .po file for your language may then be modified, committed, and put into a pull request as usual.
License
Parchment is free software distributed under the terms of the GNU General Public License version 3 or later. See COPYING for more information.