aboutsummaryrefslogtreecommitdiffhomepage
path: root/TODO
diff options
context:
space:
mode:
Diffstat (limited to 'TODO')
-rw-r--r--TODO67
1 files changed, 60 insertions, 7 deletions
diff --git a/TODO b/TODO
index 6aca77e..e613582 100644
--- a/TODO
+++ b/TODO
@@ -3,8 +3,13 @@ Tasks:
* VEDIT and PMATE for MS-DOS
* Macro to get the current word at dot (or by numeric argument)
similar to double right click.
+ * Scintilla: upstream 2 patches
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.
@@ -82,7 +87,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.
@@ -163,9 +168,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
@@ -221,6 +223,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.
@@ -321,6 +325,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
@@ -362,6 +370,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.
@@ -486,6 +496,7 @@ Features:
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
@@ -751,16 +762,49 @@ 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 using the same color namespace both for
+ 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.
+ * GTK: gsciteco --detach|-d to detach from the running terminal
+ (ie. daemonize).
+ Will help to occupy less tabs in the terminal emulator.
+ In most shells you can type `gsciteco &>/dev/null & disown`, but having
+ a shortcut probably makes sense.
+ On FreeBSD you could also `daemonize /usr/local/bin/gsciteco`.
+ There is --xembed but there are no stable terminal emulators
+ with Xembed support.
+ * <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.
Optimizations:
* Use SC_DOCUMENTOPTION_STYLES_NONE in batch mode.
@@ -801,6 +845,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.
@@ -875,6 +922,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