aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2025-04-19 19:58:05 +0300
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2025-04-19 19:58:05 +0300
commit26d7cf09b5c7fa6143fee59eb9425d3db5a55d86 (patch)
tree6cc775c920bbac5cefffb3ad89c73fcda50130d0
parent29f1dea16c4ffa21926ccdc5a3b3c73a56d9437a (diff)
downloadsciteco-cb972565f3050e567e6781b4abea82932d8d7310.tar.gz
updated ChangeLog and TODO for v2.4.0 releasev2.4.0
* ChangeLogs now contain the dates of all releases. * The FreeBSD package must practically be updated after uploading the release tarball.
-rw-r--r--ChangeLog140
-rw-r--r--TODO103
-rw-r--r--debian/changelog6
3 files changed, 209 insertions, 40 deletions
diff --git a/ChangeLog b/ChangeLog
index eb880f1..84a3591 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,8 +6,120 @@ using a prebuilt binary) are included.
Entries marked with "(!)" might break macro portability
compared to the preceding release.
-Version 2.3.0
-~~~~~~~~~~~~~
+Version 2.4.0 (2025-04-19)
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+628c73d Fixed occasional rubout bugs, especially related to restoring
+ the `@` modifier state. This has only been observed on 64-bit Windows,
+ but possibly existed since v2.0.0.
+c462509 fixed formatting of the smallest possible integer with `\`
+fb2ba9d,
+(!)7c0e4fb `@` and `:` are now allowed only immediately in front of
+ commands that will really interpet them.
+ They are no longer implicitly passed on to the next command.
+b391858,
+9f334bb,
+d23b44f,
+2440499,
+1425572,
+e9c9a4b,
+6afa02a Added tutorial document, which is automatically loaded on the first invocation.
+ It's also available via the website.
+9e101ec the ES command (send Scintilla message) now supports passing both wParam
+ and lParam as null-terminated strings
+33f7165,
+257a0bf fixed leaking data on rubout
+2b92178 fixed leaking partially built string arguments in case of errors
+06e48c3 fixed memory leak when seeing an existing label (exactly the same or redefinition)
+cefe7e6 sciteco lexer: enable 2-char soft tabs by default.
+ This means that <TAB> and M#it now indent with 2 char tabs by default
+ in SciTECO source files.
+d6aaaab improved the "asm" (x86 assembly) lexer
+3cf370b added CSS lexer configuration
+7d29ae8 added SQL lexer configuration
+edad78b Asciidoc, Markdown and Git lexers: enable word wrapping by default
+bdf35b8 Added "email" lexer for writing mails.
+ This is useful when using SciTECO as an email editor, for instance with the
+ Aerc mail client.
+ca0d765 Added `@W`, `@P`, `@V` and `@Y` command variants:
+ They swap the order of skipping to non-word characters, followed by word characters
+ for forward movements/deletions.
+44307bd,
+62a9c8d,
+e066864 The CTRL+W immediate editing command now mimics `Y` more closely and also rubs out no-op
+ commands (whitespace), followed by the command including all @- and :-modifiers.
+f4114ae,
+867d22e,
+541bee1,
+(!!)7bcd3d8 All word movement and deletion commands (W, P, V, Y) now behave similarily:
+ They first move over or delete word-characters (as defined by SCI_SETWORDCHARS)
+ and then skip non-word characters.
+ This can potentially break a lot of macros.
+ab35f66 added `P` command as a reverse form of `W`
+ccf9ee2,
+376da1e fixed rubbing out `?` (help) after editing a Q-Register
+1b907da Without ~/.teco_ini, we now automatically mung a fallback.teco_ini
+ (previously: sample.teco_ini).
+ Fresh installations are therefore much user-friendlier.
+91fa165 GTK/win32: fixed fonts and therefore pango warnings on startup (closes #7)
+816d2a3 GTK: prevent drag-and-drop interaction and block more possibly dangerous touch and scroll events
+4254346 GTK: do not attempt automatic ANSI key translation for dead keys.
+ This fixes entering caret on some systems and keyboard layouts.
+38ae2e4 GTK: always scroll caret when window size changes.
+ Should make sure that files and help topics are always in view.
+29f1dea,
+2e601e3 GTK: set the mouse cursor on the Scintilla view to signal busyness and on the popup entries
+5d5a204 GTK: improved the RGB values of the 16 default colors.
+ Everything is a bit brighter now.
+f421c8f ncurses: implemented clipboard support via external processes
+ ($SCITECO_CLIPBOARD_SET and $SCITECO_CLIPBOARD_GET)
+327d749,
+8d8d62a,
+a7207d8 ncurses: support monochrome terminals
+24b08da Curses: use special ellipsis symbol instead of "..." when truncating strings
+ Even though it's not a Nerd Fonts glyph, it is only done if ED&512.
+f545bf9 Curses: only show scroll bars when the document is large enough
+08a7f8f,
+e895930 Curses: fixed flickering when scrolling through the auto-completion popup
+ (or generally when keeping it on screen even unchanged)
+29fe0a1 Try to preserve the vertical scrolling position.
+ This improves e.g. the M#cf (clang-format) macro.
+d2f759a,
+980dcda dot is not automatically scrolled into view when processing button scroll events
+1208193,
+5b54cd8,
+53dfbfe,
+428dafa support mouse interaction with popup windows (scrolling and clicking)
+8cc704b,
+72aa210,
+00dd536,
+b87c567 Implemented mouse support via special ^KMOUSE key macros and <EJ> with negative keys.
+ You can process left, right, middle clicks and scroll events.
+ fnkeys.tes provides a macro for jumping by left mouse click and
+ inserting a buffer position by right click.
+ Double right click inserts the range of the selected word and the
+ range can also be dragged.
+a338e1a EC/EG command: now for null bytes in $COMSPEC/$SHELL
+(!)583eddc labels can no longer be redefined, but it's a warning now,
+ so you can still use them as comments like in classic TECO
+1a1baeb support :EF for saving a file before closing it
+eddc89a file and directory auto completions are now case-insensitive on Windows and Mac OS,
+ at least in case-insensitive directories
+f700268,
+e2eff00 support +line[,column] and filename:line[:column] syntaxes when
+ opening files (opener.tes)
+9b3a91e,
+a94d803 minor sciteco(1) and sciteco(7) manpage improvements
+45cb7da Cheat sheet: Mentioned @Xq, S...$^SC, mouse support and :EF
+064f05f provide Ubuntu 24.04 releases as well
+a1aa851 Mac OS releases are relocatable now, so it should be possible
+ to install it into non-root directories.
+566a05d,
+a2ef990 Windows releases are now provided only in 64-bit.
+ 32-bit binaries can still be manually built, though.
+
+Version 2.3.0 (2024-12-25)
+~~~~~~~~~~~~~~~~~~~~~~~~~~
38d1f4c session.tes now supports the Fossil VCS (session.fossil) for setting up
buffer sessions per Fossil repository.
@@ -41,8 +153,8 @@ a673abe,
244a54a implemented Scintilla lexer for SciTECO code, i.e. TECO syntax highlighting
d654d0a fixed some compiler warnings when building with --disable-debug
-Version 2.2.0
-~~~~~~~~~~~~~
+Version 2.2.0 (2024-12-09)
+~~~~~~~~~~~~~~~~~~~~~~~~~~
3f6572c Fixed crashes when rubbing out file open (EB) with glob patterns, i.e.
when <EB> would open more than one file.
@@ -89,8 +201,8 @@ a93243b,
9610dce,
52d66c5 minor documentation fixes
-Version 2.1.1
-~~~~~~~~~~~~~
+Version 2.1.1 (2024-11-17)
+~~~~~~~~~~~~~~~~~~~~~~~~~~
eff7233 session.tes: store the current tab style (width and hard-tabs).
Also, it now handles filenames containing ASCII 27.
@@ -142,8 +254,8 @@ d3a91fc grosciteco: fixed the CuXXXX postprocessor command, ie. insertion of cha
730567b grosciteco: added some more quote glyphs
2bbc584 grosciteco: support the "pc" (centered dot) glyph
-Version 2.1.0
-~~~~~~~~~~~~~
+Version 2.1.0 (2024-10-16)
+~~~~~~~~~~~~~~~~~~~~~~~~~~
7413b9c Fixed memory leak when replacing command lines.
Even cursor movements via function keys (fnkeys.tes) were constantly leaking memory.
@@ -279,8 +391,8 @@ f1fec09 fixed ]$ and ]~ (pop from Q-Reg stack to special Q-Registers).
The idiom [$ FG...$ ]$ to change the working directory temporarily now works.
Similarily you can now write [~ ^U~...$ ]~ to change the clipboard temporarily.
-Version 2.0.0
-~~~~~~~~~~~~~
+Version 2.0.0 (2023-06-19)
+~~~~~~~~~~~~~~~~~~~~~~~~~~
b65c64a don't set up any margins or indention settings on the unnamed buffer in sample.teco_ini
aa2e96a,
@@ -474,8 +586,8 @@ b65eee0 support specialized ^W (rub out part of file name) immediate editing com
c98a2cd restrict globbing in the EB command to regular files.
bae8cd7 The <EN> command now allows matching file names and checking file types.
-Version 0.6.4
-~~~~~~~~~~~~~
+Version 0.6.4 (2015-03-18)
+~~~~~~~~~~~~~~~~~~~~~~~~~~
18fe073 added PDCURSES_LIBS ./configure variable to overwrite the check for PDCurses
537b7b5 preliminary support for ncurses/win32. This port is not well
@@ -768,7 +880,7 @@ de616e3 Fixed compilation of the GTK+ interface
c5c24b0 updated lexer config: CMake and XML lexing
6f7694e Fixed building on non-C locales (Thanks to Martin Roedel!)
-Version 0.5
-~~~~~~~~~~~
+Version 0.5 (2013-03-20)
+~~~~~~~~~~~~~~~~~~~~~~~~
initial release
diff --git a/TODO b/TODO
index 7ec9ca2..f0d4487 100644
--- a/TODO
+++ b/TODO
@@ -1,13 +1,21 @@
Tasks:
* Have a look at TECO-86.
- * ncurses: Is it possible to cancel out a background A_STANDOUT with A_REVERSE?
Known Bugs:
+ * The current horizontal position (set by 4EJ via SCI_GETCOLUMN) is
+ often wrong, i.e. pressing the up-cursor key can get you into the
+ wrong column.
+ Character representations obviously take always one column.
+ This would have to be fixed in Scintilla's SCI_GETCOLUMN.
* Excessively long lines slow down SciTECO too much, especially
when enabling SCI_SETWRAPMODE(SC_WRAP_CHAR).
In some cases, the internal redrawing blocks SciTECO forever.
* @ES/SCI_CLEARALLREPRESENTATIONS// does nothing.
Might be a Scintilla bug.
+ * PDCurses/Wincon does not report button released events.
+ We try to work around this with click detection,
+ but it still behaves a bit oddly.
+ See https://github.com/Bill-Gray/PDCursesMod/issues/330
* PDCurses/WinGUI: There is still some flickering, but it got better
since key macros update the command line only once.
Could already be fixed upstream, see:
@@ -156,6 +164,14 @@ Known Bugs:
files around, it does not produce a core dump.
Features:
+ * Gtk: special key macros for drag-and-drop interactions?
+ * opener.tes should try to center the opened line
+ (SCI_SETFIRSTVISIBLELINE).
+ * Rubout of SCI_GOTOPOS could also restore the vertical
+ scrolling position (SCI_SETFIRSTVISIBLELINE).
+ So e.g. rubbing out ZJ restores the exact view.
+ On the other hand, this would disallow scrolling via
+ repeated Ls, followed by their rubout.
* Auto-indention could be implemented via context-sensitive
immediate editing commands similar to tab-expansion.
Avoids having to make LF a magic character in insertion
@@ -200,7 +216,16 @@ Features:
On the other hand, the radix is runtime state and parsing
must not depend on runtime state in SciTECO to ensure
parseability of the language.
- (Perhaps ^H should go to a special hexadecimal number state.)
+ We could use the @ modifier though, so a hexadecimal constant
+ must always begin with @0-@9.
+ @1e\ would be enough to insert the escape character.
+ If the number starts with a non-decimal digit, you will have to
+ prefix it with 0, as in @0FF. If it is followed by a command A-F,
+ you can add an additional space or even brace the expression as in
+ `@0FF A` or `(@0FF)A`.
+ The same could be done with a caret: `^0FF`.
+ Alternatively, ^P would still be available as a single-key-press
+ hex-constant prefix.
* Furthermore, this opens the possibility of floating point
numbers. The "." command does not take arguments, so it
could be part of the number syntax. This disallows constructs
@@ -213,9 +238,12 @@ Features:
* SciTECO could also be "dynamically" typed by using
integer and floating point types internally.
The operator decides how to interpret the arguments
- and the return type.
+ and the return type. This is good since we'd need less operators
+ and it's good to keep true integers around.
* Having a separate number parser state will slightly simplify
- number syntax highlighting (see teco_lexer_getstyle())..
+ number syntax highlighting (see teco_lexer_getstyle()).
+ * ^H as shortcut for 16^R. ^H is backspace, but it won't be
+ necessary to type very often.
* Key macro masking flag for the beginning of the command
line. May be useful e.g. for solarized's F5 key (i.e. function
key macros that need to terminate the command line as they
@@ -434,7 +462,7 @@ Features:
* Once we have our own function call stack,
it will be possible, although not trivial, to add support for
user-definable macros that accept string arguments, eg.
- EMq<param>$
+ EMq<param>$ or @Mq/param/
This will have to switch back and forth between the macro and
the invoking frame supplying the macro (similar to a coroutine).
In the most simple case, a special command returns the next character
@@ -447,6 +475,12 @@ Features:
macros. The same construct would also be useful with
non-interactive commands as a way to store the supplied parameter
using EU for instance.
+ * If we will never allow @Mq/foo/ for passing arguments to macros,
+ we might at least make the state of the @ modifier (and the number
+ of : modifiers) available to the macro, e.g. via a special
+ EJ flag.
+ This will also make it possible to detect whether the macro is
+ a local call (whether is has its own local Q-Reg table).
* Emscripten nodejs port.
This may be a viable way to run SciTECO "cross"-platform, at least
for evaluation... on UNIX-like systems in absence of prebuilt binaries.
@@ -512,6 +546,10 @@ Features:
https://github.com/fpjohnston/TECO-64/blob/master/doc/oper.md
However, instead of introducing a separate parser state, better
use operators like ~=, ~< etc.
+ * Alternatively, `~` might be a good choice as a shorter alternative
+ to XOR, allowing for the idiom `Qa~Qb"=` when checking for equality
+ that is faster than using `-` and works for floats as well.
+ * ^& could be a NAND operator.
* Perhaps ignore whitespace after @ as does TECO-64.
There is little benefit in using spaces or tabs as string delimiters,
but ignoring whitespace may increase readability. Eg.
@@ -578,9 +616,14 @@ Features:
contents in the generated .teco_session.
Ideally we would also persist any manually configured lexer,
but we cannot easily store the current buffer's lexer.
- * session.tes: Could mung a .teco_ini in the VCS directory as well.
- This is only really useful once we can elegantly append to various
- ED hooks.
+ * session.tes: Could mung a .teco_ini in the VCS/session directory as well.
+ It should also do so if opening files from the command line.
+ Unfortunately, this requires a reliable way to check for the equality
+ of two directories, so that we do not accidentally mung ~/.teco_ini.
+ * session.tes: determine session.path by recursively descending from
+ the current directory to the root, but only if session.vcs fails.
+ This means you could create sessions in arbitrary directories
+ but setting session.path once.
* grosciteco: Does not currently support diacritics.
This is because Groff decomposes characters in intermediate output.
Either we have to consult devutf8/R or use wrap g_unichar_compose().
@@ -624,22 +667,20 @@ Features:
the current line+column in to the message line.
* With Unicode icon support, we might want to replace a few more
special symbols.
- For instance, the "dirty" file symbol could be  or 󰓨 .
- * The @ and : modifiers should probably be allowed only immediately in
- front of commands in order to avoid possible bugs.
- @ is always evaluated even in parse-only mode
- since it has syntactic significance, so expressions like `Qa"S@'V`
- make no sense -- `V` would always be @-modified.
- : could theoretically be set conditionally but there is little reason
- to do so.
- Chances are you will set : accidentally on a command which doesn't support
- it and it will affect the next one where you don't expect it.
- Either @ and : should be separate states that whitelist all commands
- that actually accept them; or we check the flag at the beginning
- of the start state.
+ For instance, the "dirty" file symbol could be  or 󰓨 or 󱠦 .
* There should perhaps be an immediate editing command to repeat the
last complete command.
- For that to work, @ and : modifiers must be part of the command.
+ * Read-only buffers.
+ * Lexers should uniformly avoid the color.variable style, except in
+ languages that make a difference between names and variables,
+ i.e. typically shell-like languages with "$var" constructs.
+ * Install autocompletion scripts. They will have to be preprocessed,
+ though. See also
+ https://github.com/rhaberkorn/sciteco/wiki/Shell-auto-completions
+ * There should perhaps we a --revision siteconfig option, to pass
+ in a Git revision, that's printed by `sciteco --help`.
+ But it would have to work with tarballs as well, so it has to be
+ written into a separate header, that can be distributed.
Optimizations:
* Use SC_DOCUMENTOPTION_STYLES_NONE in batch mode.
@@ -685,6 +726,9 @@ Optimizations:
turned into macros, though.
However, we cannot use macros in TECO_DEFINE_UNDO_CALL().
Also, we cannot nest such macros for some strange reason.
+ * If GCC would give guarantees on the memory layout of bitfields with
+ `struct __attribute__((packed))`, we may use bitfields instead of
+ flag enums e.g. for teco_ed, where the position of bits must be known.
* We could save around 500 bytes in every teco_machine_main_transition_t
table (2kb in total) if we would wrap entries in a macro and decrement
32 (' ').
@@ -753,15 +797,22 @@ Documentation:
* What to do with `--xembed`: tabbed, st
when used as the git editor, etc.
* People are demanding a Youtube tutorial.
- * Vimtutor like tutorial. Could be a woman-page.
- Perhaps sciteco-tutorial would copy the files to /tmp and
- open them always with fallback.teco_ini.
* The HTML manuals lack monospaced fonts.
This is partly because an.tmac removes the Courier family
in nroff mode, but it still doesn't work if you undo this.
- * sciteco(1) should contain command examples.
* Keyboard view with the SciTECO commands on each key.
Could perhaps be generated with gpic.
* Wiki page about creating and maintaining lexer configurations.
Also mention how to use the "lexer.test..." macros in the
"edit" hook.
+ * The man pages could include verbatim control characters
+ when processed with grosciteco, so they will be rendered
+ with the usual character representations when displayed
+ within SciTECO.
+ In fact, we could use post-processor-specific hacks to
+ achieve reverse text on HTML and PDF output as well.
+ However, this would require tedoc-support as well.
+ * The cheat sheet could be built by default now and
+ installed along with other documents.
+ Then however we'd have to tweak it, so the CI-generated
+ file always looks good.
diff --git a/debian/changelog b/debian/changelog
index 0351f90..fc8c229 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+sciteco (2.4.0-0) unstable; urgency=low
+
+ * new upstream version v2.4.0
+
+ -- Robin Haberkorn <robin.haberkorn@googlemail.com> Tue, 01 Apr 2025 01:02:03 +0000
+
sciteco (2.3.0-0) unstable; urgency=low
* new upstream version v2.3.0