Releases: SOwOphie/wsedit
v1.2.5
New Features
-
-ep
can now be used to preserve whitespace exactly on save. This should help
with file formats that are particular sensitive to whitespace changes, such as
patch files. -
-dt <path/to/file>
can now be used to add custom themes. Example theme
files found in/themes/
folder.default.wstheme
is heavily commented to
help explain things. A huge Thank You to Guy Black for implementing this!
Fixes
- No longer clobbers symbolic links with atomic saves.
Ctrl-A
now correctly selects all text if the file does not end with a
newline.
Other Changes
- Changed tab rendering again, now a marking character is placed both at the
start and the end of the tab space. - New language definition for patch files.
- Switched to stack LTS 18.28 for GHC 8.10.7.
Ctrl-P
now respects selection.
v1.2.4
This is a technical release, as WSEdit is switching to a new version scheme as
well as moving to the BSD-3 license.
New Versioning Scheme
Version x.y.z[.a]
will now have the following meaning:
x
will increment for major rewrites and other milestones.y
will increment for incompatible changes.z
will increment for releases.a
denotes development efforts on top of the current release. No guarantees
regarding change compatibility are made.
New License
The entire codebase, including the language definitions, is now licensed under
BSD-3.
Other Changes
- Removed the orphaned remains of the test suite.
v1.2.3
New Features
- The
-li
directive can now be used to designate additional characters that
can be part of identifiers. This affects rendering, but is most useful for
autocompletion. - Some languages use prefixes to mark certain tokens (e.g. LaTeX macros always
start with a\
). The new-lkp
directive can be used to mark these as
keywords. - Search keywords can now be entered on-the-fly. Press Ctrl-F without text
selected to bring up a prompt in the status bar. Removing search terms has
been moved to Ctrl-Alt-F. - File contents can now be piped through external commands via Ctrl-P.
Fixes
- Fixed a endless loop with duplicate
-mi
directives. - Search no longer breaks strings and brackets.
- Keywords can now also be brackets at the same time.
- The known file encoding issues have been resolved (it was a read problem, not
a write problem). The editor now no longer forces you to use the quirky
encoding detection for reading files, see the help for the-fr
switches for
more information. - Selected text in the main view will no longer cause status messages to be
selected as well. - Fixed elastic tabstops performace problems.
- Fixed
-ms
exiting immediately.
Other Changes
- Moving the cursor in larger steps (e.g. Ctrl-Right) now stops at the
beginning / end of the line. - Replaced obsolete
EitherT
with themtl
-nativeExceptT
. - The editor can now enter read-write mode for files that cannot be saved.
- Split up language definitions for C and C++.
- Moved editor dump to
F9
. - Adjusted syntax highlighting files to make use of the new features mentioned
above. - Added
Ctrl-A
keybind to select everything. - Compatibility with vty 5.26 (some jackass
decided to delete all theliftIO
s because he didn't need them...) - The vertical bar indicating a tab character is now positioned at the left edge
of the character, not the right edge. This helps detect "lost" spaces between
tabs and makes it easier to follow to the construct at the beginning of an
indentation level. - Switched to the
lts-16.5
stack resolver.
v1.2.2b
v1.2.2
New Features
Elastic Tabstops
wsedit
now supports Elastic Tabstops as introduced on
http://nickgravgaard.com/elastic-tabstops/ . Enable via -el
. The feature is
still somewhat experimental and performance can be inconsistent.
Packaging Changes
These changes should make packaging wsedit
a lot easier than it used to be.
Adjusted build flags, added new development build flag
-
By default,
wsedit
will no longer be compiled using-Werror
. This should
increase compiler compatibility both forwards and backwards. -
Debugging functions will no longer be compiled in by default. Therefore, the
time
package is no longer required. -
Passing
--flag wsedit:dev
to stack will produce a development build. This:- enables
-Werror
- disables
-O2
to speed up recompilations - creates a separate executable called
wsed-dev
- enables debugging functions
- pulls in
time
again - sets the badge text to "!!! DEVELOPMENT BUILD !!!"
- enables
Additional, system-wide config location
Placing files into /etc/wsedit/
will also work now. I've also added a
primitive install_lang.sh
that takes care of that automatically while
complying to the $DESTDIR
convention.
Fixes
- Fixed another instance of the viewport not following the cursor correctly.
- Fixed a config parse error with paths containing subdirectories.
- Made it possible to include escaped quotes inside quoted options, e.g.
-lk "this\"is\"stupid\"but\"works\"now"
Other Changes
- Local config files are now parsed independently of the working directory:
Starting from the file system root ("/"), check for a ".local.wsconf" file,
parse it if possible, descend into the folder leading to the opened file.
Repeat for every folder along the way. - Due to this, the way file matching works has been adjusted. If no path prefix
is given, only the file name portion will be matched. Otherwise, the full path
is matched. Relative paths are relative to the parent folder of the config
file containing them, or to the current working directory if given via
command-line argument. For examples, seewsed -hc
. - Improved the text rendering algorithm for
-h*
. It now prioritizes small
words instead of large ones for additional padding. - Moved the "crash editor" keybind from
Alt-.
toF11
since Alt and "."
are right next to each other on some keyboards. - When opening the file at a specific line, the viewport will be placed so that
the target line is at 1/3 of the visible area instead of the bottom. - I've changed my first name, email address and GitHub account name. Due to
that, the repository url also changed. It is now
https://github.com/LadyBoonami/wsedit
.
v1.2.1
This release doesn't contain any big features, but lots of small improvements
and bug fixes.
New Features
Overlay Badge
Since "Fork me on GitHub" badges are so popular these days I decided to join in
on the hype. The -ds <str>
switch can now be used to place a ribbon with
arbitrary text over the top right corner of the editor. It was a cheap change
for a cheap joke but maybe somebody will get something useful out of this.
Keybinds Menu
Another step towards increasing user-friendliness. Press F1
to view all key
bindings.
Other Changes
- Lots of new language definitions, thanks to @ararslan for providing the
majority of them =) - Renamed the executable to
wsed
. I've meant to do this from the very
beginning but I haven't gotten around to looking it up until now. - Atomic saves can now be disabled using
-fa
. - The config directory traversal is now deep, i.e. files in subdirectories will
now also be read. - Adjusted the colour scheme of unprintable characters to be a little bit less
obnoxious. wsedit
now prompts before opening large files, as the initial cache building
can take up to some minutes for bigger logs.- The status box (bottom left corner) is now coloured.
- Switched to stack
lts-8.0
, making use of the newghc 8.0.2
. - Escape sequences can now be longer than a single character.
- Retroactively added
CHANGES.md
to mirror the GitHub releases page.
Fixes
- Fixed an error where the cursor position detection for bracket highlighting
was off by one character. - Saving a file with jump marks present no longer crashes the editor.
- Fixed
-ad
not picking up subdirectory rules correctly. - The viewport is now limited to the text's bounds, at least one row / column
must be displayed at any time. - More performance tweaking.
ssh
was sometimes breaking the clipboard, it should no longer do that.- The clipboard file (if present) is no longer world-readable by default.
v1.2.0
This is going to be the last "big" release with sweeping changes for the foreseeable future, since I consider wsedit
somewhat feature-complete. Of course smaller updates will still happen, but don't expect any mind-blowing new bells and whistles.
New Features
Atomic saves
This feature ensures that even in the case of a power outage during write, your data will be protected.
Sanity check on save
wsedit
will now verify that the file has been written correctly and take appropriate measures if it wasn't.
New line counter in the bottom right corner
Release stability check
The editor can now be in onew of four stability states:
- Release
- RC
- WIP
- Prototype
By default, only Release instances will start, any other version will warn you about its lack of stability and exit. You can use e.g. -ys WIP
to accept all stability levels down to WIP.
Other Changes
Completely rewrote the options system
For the new syntax of config files, check wsedit -hc
.
The existing options all got new, hierarchical names to keep the namespace clean as well as make memorizing them a bit easier. Also, the way you give parameters to arguments has changed. Furthermore, now double quotes can be used to enclose spaces, e.g. "end function"
.
The new commands are:
-! ==> -mf
-b ==> -dB (now default behaviour)
-B ==> -db (no longer default behaviour)
-cg ==> -ocg
-cl ==> -ocl
-d+<n><f> ==> -ad <n> <f> (New syntax for file matching)
-d~+<n> ==> -as <n>
-D ==> -A
-e<s> ==> -fe <s>
-E ==> -fE
-fbc+<s1>_<s2> ==> -lcb <s1> <s2>
-fbr+<s1>_<s2> ==> -lb <s1> <s2>
-fbr-<s1>_<s2> ==> -lB <s1> <s2>
-fe+<c> ==> -les <c> and -leo <c>
-fe- ==> -leS and -leO
-fh+<s> ==> -gh <s>
-fh-<s> ==> -gH <s>
-fk+<s> ==> -lk <s>
-fk-<s> ==> -lK <s>
-flc+<s> ==> -lcl <s>
-flc-<s> ==> -lcL <s>
-fms+<s1>_<s2> ==> -lsm <s1> <s2>
-fms-<s1>_<s2> ==> -lsM <s1> <s2>
-fs+<s1>_<s2> ==> -lsr <s1> <s2>
-fs-<s1>_<s2> ==> -lsR <s1> <s2>
-fsc+<s1>_<s2> ==> -lsc <s1> <s2>
-fsc-<s1>_<s2> ==> -lsC <s1> <s2>
-h unchanged
-hc unchanged
-hk unchanged
-i<n> ==> -ei <n>
-j<n> ==> -ej <n>
-J<n> ==> -eJ <n>
-lu ==> -flu
-lw ==> -flw
-L ==> -fL
-p ==> -op
-P ==> -oP
-r ==> -gr
-R ==> -gR
-s ==> -ms
-ts ==> -ets
-tt ==> -ett
-T ==> -eT
-V ==> -hv
-x ==> -dx
-X ==> -dX
-y ==> -ye
-Y ==> -yE
Some time ago, I foolishly promised a sed
script for easier migration. Even though I consider myself a man of my word, this will not initially be provided, because:
- The new syntax provides much better ways of declaring options, which can't be mapped 1:1 by a simple script. Therefore, anything created by that hypothetical script would work, but be ... let's say ... less than optimal regarding performance and readability, and in need of manual changes anyways.
- I suspect that the ~3 people out there using
wsedit
haven't bothered to create huge configs that would require automatic updates.
But! If you would find such a sed
script helpful, create an issue and I will deliver.
Crash dumps and rescue files now end up in the home directory instead of the working directory
Now your data isn't lost if your editor crashes inside a non-writable folder.
Split up escape characters
There are now two versions of escape characters: one for inside strings, and one for outside. This is necessary to display both the haskell sequence "asdf"\'s'
(read: "asdf"
without 's'
) and the bash sequence echo \"
(read: print a quotation mark) correctly.
Cleaned up character strings
The definition of a character string is now:
Either
* <opening sequence><single char><closing sequence>
* <opening sequence><escape char><single char><closing sequence>
instead of some wonky maximum length <= 2
.
Some more optimizations for the rendering pipeline
Probably hardly noticable for smaller files, but should make scrolling log files much smoother.
Changed the behaviour of dictionary scanning.
- You can now specify wildcarded file paths.
- Scanning now ignores hidden folders and files. This may decrease the startup time by orders of magnitude, depending on your directory layout. For my version of the
wsedit
repository, the change cuts down the amount of scanned files from 9076 to 53.
We now use the shiny, new GHC 8.0.1.
Not much to say here.
Fixes
- The first input no longer takes ages to process on huge files.
- Cursor position after multi-line paste operations should now be correct.
v1.1.0
Oh, you thought this was just another abandoned pet project, did you not? Well fasten your seatbelts, because crafted using dark, forbidden algorithms devised in the shady depths of a shaded hammock somewhere in Croatia, Release 1.1 is here, bigger, better, faster and cooler than ever before!
New features
Highlight: New Rendering Engine
Featuring:
- Block Comments
- Multi-line strings
- Bracket highlighting
Take a look at wsedit -h
to see how to get started.
Additional optimizations
wsedit
should now be much faster.
Loading screens
You will now see what wsedit
is doing while it's doing what it's doing instead of staring at an unresponsive editor screen.
More source code documentation forr all you hackers out there
The new file ARCHITECTURE.md
details the internals of wsedit
. Using it in conjunction with haddock
+ hscolour
output should make understanding my syntactic ramblings much easier.
Fixes
- Fixed some issues regarding other character encodings. Shit's still somewhat broke though.
- Finally implemented
-j
to allow you to set jump marks from the command line / config files. -!
didn't work for integer parsing errors, fixed that one as well.-s
crashed ungloriously on parse errors, taking the terminal with itself in the process. Created an error message for this.
v1.0.0
v1.0.0RC
New Features
New help section.
- Now with text justification. Death to all left-aligned paragraphs!
- The general help is now divided into sections.
- The keybinds help now also fits into 80 columns and wraps as needed.
Added -ff
to override the file extension.
Shell scripts, for example, seldomly end on .sh
. Now you can run wsedit -ffsh /etc/profile
to remedy that. Unfortunately, this option is not quite ready for use inside config files, but this is (almost) certain to come at a later date.
Added -!
to ignore command errors.
Got your global config broken? Tired of using nano to clean it up? Use wsed -! -cg
to ignore all errors and clean up your mess!
Added Meta- to jump 100 lines.
Not really much to say about this, see wsedit -hk
for more info.
Added options for file encoding and line separator.
wsedit
will open every file, but rewrite it to your locale's settings, unless specifically told otherwise. On that note:
Improved rendering for invalid characters.
Unprintable characters and unicode marks will now show up as ?#<abcd>;
, where <abcd>
is the hexadecimal code for that character. With this, wsedit
can now open (and somewhat edit) binary files!
Fixes
- Typing no longer creates two undo states per character.