aboutsummaryrefslogtreecommitdiffhomepage
path: root/TODO
diff options
context:
space:
mode:
Diffstat (limited to 'TODO')
-rw-r--r--TODO124
1 files changed, 82 insertions, 42 deletions
diff --git a/TODO b/TODO
index 234275c..c284a22 100644
--- a/TODO
+++ b/TODO
@@ -1,12 +1,14 @@
Tasks:
* Have a look at TECO-86.
* VEDIT and PMATE for MS-DOS
- * Update to Scinterm 5.5.
- Perhaps we can make use of the arbitrary RGB color feauture?
- * Macro to get the current word at dot (or by numeric argument)
- similar to double right click.
+ * Scintilla: upstream 2 patches
+ * HaikuPorts
Known Bugs:
+ * OBS GTK builds sometimes fail: "cannot open display"
+ Obviously, xvfb-run isn't reliable or has race conditions.
+ * In multiline command lines, the asterisk can scroll out of
+ view. Perhaps it has to be drawn independently of Scinterm.
* FreeBSD's `crontab -e` is not compatible with SciTECO's savepoint mechanism.
* ncurses: GNOME Terminal and Xterm produces BUTTON3_PRESSED (without BUTTON3_RELEASED)
events when scrolling horizontally.
@@ -27,6 +29,9 @@ Known Bugs:
This would be necessary for an interactive screen editing script,
that leaves you in <I> always.
This would require some refactoring.
+ * GTK on Haiku: CTRL and AltGr-combinations do not work.
+ The modifiers are not delivered properly and it appears to affect all Gtk apps
+ on Haiku.
* Gtk: The control characters in tutorial.woman are still styled with
the variable-width font since its rendered in STYLE_CONTROLCHAR (36),
which is reset in woman.tes.
@@ -41,15 +46,6 @@ Known Bugs:
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
- Waiting for PDCurses in MSYS to be updated.
- * 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:
- https://github.com/Bill-Gray/PDCursesMod/issues/322
* Win32: Interrupting <EC> will sometimes hang.
Affects both PDCurses/WinGUI and Gtk.
This no longer happens with ECbash -c 'while true; do true; done'$.
@@ -58,16 +54,9 @@ Known Bugs:
However the UNIX path translation appears to be a Cygwin feature.
If SciTECO would do that, it might break other things (e.g. you might
want to refer directory C:\mingw64 instead).
- * Win32/Wincon: cat ... | sciteco -i
- "Redirection is not supported."
- PR: https://github.com/Bill-Gray/PDCursesMod/pull/344
- Waiting for an MSYS package releae.
- * PDCurses/Win32: Both Wincon and WinGUI crash when you press *any*
- non-ANSI character. This is fixed since PDCurses v4.5.2:
- https://github.com/Bill-Gray/PDCursesMod/issues/335
- We're waiting for an MSYS package upgrade.
- It could also be worked around by using wget_wch() instead of wgetch().
* PDCurses/Win32: Crashes sometimes without any error message.
+ * PDCurses/WinGUI: CTRL-modifier can get stuck.
+ Should have already been fixed in 9f9819fe8d.
* NetBSD Curses: scrolling apparently uses hardware idl capabilities
resulting in graphical glitches on slow terminals.
idlok(FALSE) is apparently ignored.
@@ -84,7 +73,7 @@ Known Bugs:
when using Solarized. Affects e.g. the message line which uses the
reverse of STYLE_DEFAULT.
Perhaps we must call init_color() before initializing color pairs
- (currently done by Scinterm).
+ (currently done first by Scinterm).
* Saving another user's file will only preserve the user when run as root.
Generally, it is hard to ensure that a) save point files can be created
and b) the file mode and ownership of re-created files can be preserved.
@@ -165,9 +154,6 @@ Known Bugs:
be set/disabled.
This doesn't even work with SCI_SETPROPERTY, probably since
we do lexing "in the container".
- * Mac OS: The colors are screwed up with the terminal.tes color scheme
- (and with --no-profile) under Mac OS terminal emulators.
- This does not happen under Linux with Darling.
* File name autocompletion should take glob patterns into account.
The simple reason is that if a filename really contains glob characters
and you are trying to open it with EB, you might end up not being
@@ -223,6 +209,8 @@ Features:
Old Docbook documents are sometimes SGML based.
* Folding support: Perhaps there should also be builtin commands
[:]F+ and [:]F-
+ The mouse events in fnkeys.tes would have to edit the
+ commandline, though.
* Gtk: special key macros for drag-and-drop interactions?
This could be used to send the tabs of one SciTECO process into another
instance and close the sender instance.
@@ -323,6 +311,10 @@ Features:
insertion commands by automatically terminating the command.
Even more simple, the function key flag could be effective
only when the termination character is $.
+ Instead of reserving a character, we could also reserverve
+ a bit in the function key maks.
+ It's however impossible to reliably return to the start state
+ from arbitrary parser states.
* Support more function keys.
We can define more function keys via define_key(3NCURSES).
Unfortunately they are not really standardized - st and urxvt for instance
@@ -364,6 +356,8 @@ Features:
One advantage in comparison to ::S
(which also supports arguments in SciTECO), would be the ability
to bound comparisons by line with n:FB.
+ * FRtext$ is equivalent to ^SDItext$ in DEC TECO.
+ If we adopt these semantics we should of course prefer ^YDItext$.
* Searches can extend beyond the given bounds in DEC TECO
as long as they start within the range.
That's why ::S is equivalent to .,.:FB in DEC TECO.
@@ -451,15 +445,6 @@ Features:
On Video TECO it appears to free the current Q-Reg, which probably
makes more sense than the current semantics.
Should be changed along with implementing FQq.
- * multiline commandline
- * Perhaps use Scintilla view as mini buffer.
- This means patching Scintilla, so it does not break lines
- on new line characters and we can use character representations
- (extend SCI_SETLINEENDTYPESALLOWED?).
- Also, we cannot currently force ^I to be rendered with representations.
- cmdline.c can then directly operate on the Scintilla document.
- * A Scintilla view will allow syntax highlighting
- * These Scintilla enhancements will also improve hex mode (M#hx).
* command line could highlight dead branches (e.g. gray them out)
* Perhaps add a ^E register analogous to ":", but working with
byte offsets. This would mainly be useful in ^E\^E.
@@ -492,11 +477,12 @@ Features:
* Touch restored save point files - should perhaps be configurable.
This is important when working with Makefiles, as make looks
at the modification times of files.
- * There should really be a backup mechanism. It would be relatively
- easy to implement portably, by using timeout() on Curses.
- The Gtk version can simply use a glib timer.
- Backup files should NOT be hidden and the timeout should be
- configurable (EJ?).
+ * Could we somehow offer to open #recovery# files?
+ This would require a hook on interactive startup and/or after
+ command-line termination.
+ Also, we'd need a command to fetch the modification timestamp
+ as well.
+ * Recovery files should probably be hidden during auto completions.
* Error handling in SciTECO macros: Allow throwing errors with
e.g. [n]^F<description>^F where n is an error code, defaulting
to 0 and description is the error string - there could be code-specific
@@ -762,8 +748,51 @@ Features:
often. If <pad> is negative it might perform a right padding with
spaces.
To format a hex byte, you would write 16^R 2,Qa\ ^D.
- The same extension might be useful for =/==/===.
- * OpenVMS port. Just for the fun of it.
+ The same extension might not be desirable for =/==/===, unless
+ they are colon-modified?.
+ * Curses: allow freely using RGB colors instead of only the constants
+ corresponding with the 16 default curses colors.
+ Scinterm v5.5 supports that. This means we also need a hash map for
+ mapping RGB color values to curses color numbers, analoguous to what
+ Scinterm does.
+ The problem of Scinterm reusing the same color namespace both for
+ arbitrary RGB values and for predefined special constants however
+ hasn't been solved yet.
+ * Scinterm: INDIC_PLAIN and INDIC_STRIKE could theoretically be supported.
+ PDCurses has A_STRIKETHROUGH. This would require Scintilla API
+ changes, though, as it currently calls SurfaceImpl::FillRectangle(),
+ which cannot be reliably identified as small horizontal lines.
+ We'd have to patch Scintilla APIs as well.
+ * Auto-completion popup should perhaps be above the line with the cursor
+ in multi-line command lines.
+ This would be tricky to do in Gtk, though since we're currently using
+ an overlay.
+ * <EB> could create directories on demand and clean them up on rubout.
+ Unless additional files appeared in the meantime, in which case we should
+ output a warning.
+ * Savepoint and recovery files could fall back to ~/ if writing in the same
+ directory is not possible.
+ Or savepoint files should perhaps fall back to /tmp.
+ * ^E@q could be a generic escape mechanism instead of having separate
+ constructs like ^E@q and ^ENq (for globbing).
+ You rarely need both in the same command and we would need potentially
+ many more variants, especially for escaping search patterns.
+ So ^E@q could just do the right thing in the right context via a
+ teco_state_expectstring_t callback (defaulting to ^EQq).
+ On Windows without POSIX-Shell emulation, it could also properly
+ escape for cmd.exe.
+ On the downside, ^E@q could no longer be used to construct shell
+ scripts in the buffer or Q-registers.
+ * session.tes: Allow sessions to be opened after startup and
+ navigating into the correct directory with FG.
+ This would help with non-terminal-based workflows.
+ * There could be a key macro script for my Russian-phonetic
+ keyboard layout. This would probably require some new
+ key macro states as well.
+ * Allow the hardware cursor (CARETSTYLE_CURSES) on the main view as well.
+ We'd have to handle an overlapping info popup, though.
+ Should we deactivate the hardware cursor via curs_set(0) if it overlaps
+ the popup?
Optimizations:
* Use SC_DOCUMENTOPTION_STYLES_NONE in batch mode.
@@ -804,6 +833,9 @@ Optimizations:
using __VA_OPT__().
* A few macros like TECO_CTL_KEY() could be turned into
constexpr functions.
+ * teco_state_t should be a constexpr, so that static
+ assertions are guaranteed to work on them.
+ This means you can get rid of the TECO_ASSERT_SAFE() hack.
* Compound literals could be abused for default values in the
Scintilla SSM functions. All the wrapper functions would have to be
turned into macros, though.
@@ -878,6 +910,12 @@ Optimizations:
* fnkeys.tes: Don't insert (0C) or (0R).
* tecat.tes is too slow even though it doesn't even use Q-reg strings.
An ideal test case to study.
+ * the process_edit_cmd() callbacks from cmdline.c should probably
+ be in a separate compilation unit.
+ * Perhaps EOL normalization can be avoided by letting teco_view_glyphs2bytes() &
+ co take care of it.
+ However insertion commands would also have to take care of expanding
+ LF to the buffers EOL sequence.
Documentation:
* Doxygen docs could be deployed on Github pages
@@ -924,3 +962,5 @@ Documentation:
controlled by the SciTECO language and other state (scroll
position, window size, folding) and what that all means
for writing robust macros.
+ * Knowledge Base: Document how to open SciTECO from file managers,
+ so that sessions are initialized correctly.