aboutsummaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)AuthorFilesLines
9 daysfixed scrolling the command line after clicking in the popupHEADmaster-fmsbw-cimasterRobin Haberkorn4-23/+33
We cannot rely on the central teco_cmdline_update() call per keypress in this case. The analogous call was removed in 4e6ddd6c329d56055a732c6344df019f0d997aaf, so this was a recent regression.
12 daysrefactored some lexer configurations to make them more pleasurable to look atRobin Haberkorn4-6/+10
* color.target is yellow in terminal.tes which looks awful and it should be used sparingly. The largest part of text in any lexer should be in the default colors. * bash.tes now discerns between double and single quote strings like most lexers. * autodetect GNUmakefiles * yaml.tes now uses color.string for keys - this is for consistency with JSON where keys will also always be strings.
12 daysSciTECO lexer: style comma as operatorRobin Haberkorn1-1/+1
12 daysavoid GNU Make grouped targets and templates to build womanpagesRobin Haberkorn1-14/+9
* grosciteco.tes generates two output files. First this was modeled with `%.woman %.woman.tec : ...`, but it creates independant rules which could result in superfluous builds and broke parallel builds. Then I tried grouped targets (`%.woman %.woman.tec &: ...`) which were supposed to solve the problem cleanly. However they turned out to be buggy with pattern rules, so I used templates instead. Unfortunately grouped targets turned out to be unreliable in general and that broke some older platforms, resulting in broken .woman.tec files. * The same can be achieved by declaring .woman files the main artifact and having an empty rule like `%.woman.tec : %.woman;`. If anything draws in .woman.tec, it will still execute the rule only once.
13 daysCurses: fixed displaying the popup with multi-line command linesRobin Haberkorn2-4/+4
2025-11-13updated Scinterm: one of my patches has been mergedRobin Haberkorn1-0/+0
2025-11-12updated Scintilla: tabs in command lines and SciTECO buffers are now ↵Robin Haberkorn3-4/+1
rendered as "TAB" without any indentation
2025-11-12updated Scinterm: some of my patches have been merged upstreamRobin Haberkorn2-0/+1
It does not change anything functionally, though.
2025-11-12Curses: the default rubbed out command line color is COLOR_WHITE nowRobin Haberkorn1-3/+2
0x404040 (COLOR_LBLACK) is a poor choice since on terminal emulators with less than 16 colors, it would be rendered in black (and thus be invisible).
2025-11-12fixed the command line's line end type: it was reset during command line ↵Robin Haberkorn1-28/+26
replacement ({...}) * The line end type and tab mode is apparently a property of the document. Therefore it was lost when exchanging the command line's document during command line replacement. * Instead, the old command line is now stored in a string. * During replacement we delete and append only the part of the command line that changed. This ensures that we don't have to restyle the entire command line with every single replacement (even if it is at the end of the command line).
2025-11-11Scinterm updated: hopefully fixed Windows buildsRobin Haberkorn1-0/+0
The new wcwidth.c wasn't actually linked in.
2025-11-10Curses: the rubbed out command line is now rendered with underlines againRobin Haberkorn2-1/+3
This requires enhanced INDIC_STRAIGHTBOX semantics, which are not yet upstream in Scinterm.
2025-11-10Scinterm updated to v5.5Robin Haberkorn4-63/+95
* This currently needs a yet unmerged patch, fixing the light colors. * Scinterm no longer systematically initializes the color pairs, so we cannot predict their numbers - instead we initialize color pairs on demand and store them in a hash map, very similar to what Scinterm does internally. * Scinterm v5.5 can use arbitrary RGB colors now by automatically allocating curses colors and pairs. We do not expose this in SciTECO yet, although that would also be possible. It has to be decided first whether the special predefined colors will continue to live in the same namespace along with "true" RGB colors.
2025-11-09Curses: fixed positioning of auto completion popups above the command lineRobin Haberkorn1-1/+2
This was broken if you configured a command line with a height > 1.
2025-11-09updated Scintilla to v5.5.8 and renamed SC_LINE_END_TYPE_HIDDEN to ↵Robin Haberkorn2-1/+1
SC_LINE_END_TYPE_NONE
2025-11-09Revert "testsuite: disable testcases with Valgrind only when detecting the ↵Robin Haberkorn1-2/+2
fmsbw.de CI runner" This reverts commit 092f7d9919d9572219b7bf516933c37180e6f400. Turns out that the "Memory limiting" test cases won't even successfully run on my PC under Valgrind.
2025-11-09updated sciteco(7), README and TODO: mention the configurable command lineRobin Haberkorn3-11/+4
2025-11-09allow configuring the command line height using h,5EJRobin Haberkorn6-21/+51
* This allows for several customizations. * You can simply increase the visible command line history. For that you must also set SCI_SETWRAPMODE(SC_WRAP_CHAR). An example was added to fallback.teco_ini. * You could also set SCI_SETLINEENDTYPESALLOWED(SC_LINE_END_TYPE_DEFAULT) to see the structure of inserted text. * Alternatively we could have introduced a new command like EP or FW and also overload it to replace the current ED&2048 (e.g. -EP and EP). In DEC TECO `W` comes closest to what 5EJ now does.
2025-11-09the SciTECO lexer now tries to avoid unnecessary restylings by styling from ↵Robin Haberkorn1-5/+18
the current line as well * This optimization is unnecessary for regular TECO scripts unless you write stupendously long lines. On the command line macro however, we were always restyling the entire command line with every insertion or rubout since the command line view uses single line mode by default. Even if you enable a multi-line command line with regular line breaks, it's unlikely that you would insert many line breaks except when inserting text into the buffer. * We will now during insertion into the command line view style from the beginning of the last regular command. * During rub out from the command line, we still won't have enough information about where the previous valid start state was, so we will frequently have to restyle the entire command line. This might be worked around by adding a cmdline-view-specific hack if it turns out to be relevant on very long command lines and slow computers.
2025-11-08Curses: replaced getmaxyx(stdscr) with LINES and COLSRobin Haberkorn1-19/+12
These are equivalent, but LINES and COLS are shorter.
2025-11-08added ED flag 2048 to redirect Scintilla messages to the command line view: ↵Robin Haberkorn7-11/+47
enables syntax highlighting on the command line * M[lexer.set.cmdline] can be used to set up syntax highlighting on the command line (if desired). * Color schemes with light-dark themes (solarized.tes) are now responsible to update the command line view as well.
2025-11-08the command line macro is now managed by a Scintilla viewRobin Haberkorn9-345/+271
* Instead of rendering a teco_string_t into a Scintilla view (GTK) and an ncurses window (Curses), it is now a Scintilla view and document that is modified directly. * Reduces redundancies between GTK and Curses UIs. * It will be more efficient on very large command lines, especially on GTK. * We can now redirect Scintilla messages to the command line view in order to configure syntax highlighting, the margin, rubout indicator style and scroll behavior (TODO). * This will also simplify the configuration of multi-line command lines (TODO). * Since INDIC_PLAIN is not supported by Scinterm, rubbed out command lines are now styled with INDIC_STRAIGHTBOX (background color).
2025-11-02render tabs as "TAB" in the command-line and in SciTECO macrosRobin Haberkorn3-3/+16
* This requires the new SCI_SETTABDRAWMODE(SCTD_CONTROLCHAR). * It makes no sense to let TAB indent in TECO code as it can be the insert-with-tab command (^I). On the other hand large `I`-blocks could include TABs which are actually meant as indentations.
2025-11-02GTK: use the new SC_LINE_END_TYPE_HIDDEN for rendering the command lineRobin Haberkorn1-65/+13
This simplifies teco_interface_cmdline_update() and prepares for backing the command line macro itself with a Scintilla view (teco_view_t). The latter will avoid unnecessary recalculations when inserting characters into the command line and to factor out redundancies with the Curses UI.
2025-10-26AX_PTRDIFF_ALIASES_INT: the check should be more reliable nowRobin Haberkorn2-9/+6
* It was failing on OpenSUSE Tumbleweed i586 on OBS, resulting in duplicate symbols and build errors. This was not reproducible with 32-bit builds on OpenSUSE Tumbleweed x86_64. * Instead of hoping for a compiler warning to be treated as an error, we now use a static assertion with a _Generic expression. * The scintilla submodule has also been updated since Neil was asking to update the documentation as well.
2025-10-20fixup: AX_PTRDIFF_ALIASES_INT should enable -WerrorRobin Haberkorn1-0/+5
2025-10-20scintilla: use AX_PTRDIFF_ALIASES_INT to check whether ptrdiff_t aliases intRobin Haberkorn3-0/+23
* Scintilla had build problems if ptrdiff_t doesn't alias int if it has the same storage size (e.g. on NetBSD 10 (armv6)). * Unfortunately, Neil Hodgson refused to merge my previous Scintilla patches that would have fixed the issue at the core. See https://groups.google.com/g/scintilla-interest/c/STAv6LgLyCo * He only agreed to introducing a separate flag to work around the issue (`-DPTRDIFF_DOESNT_ALIAS_INT`). * In order to continue to support all standard C/C++ conforming platforms we therefore need a compile-time check to check for the aliasability of ptrdiff_t and int.
2025-10-09INSTALL: a `git submodule sync` is recommended after pulling since submodule ↵Robin Haberkorn1-0/+1
URLs can change
2025-10-08scintilla: use new version of the ptrdiff_t-compatibility patchRobin Haberkorn1-0/+0
Shouldn't change anything functionally, but allows us to more broadly test the patch (especially via OBS).
2025-10-07throw an error immediately after nEB if n != 0Robin Haberkorn4-22/+29
* When typing nEBfilename$ (n != 0) you would find out that the construct is invalid only after typing out the entire command. We now throw an error immediately, ie. only Escape or string termination will be expected in interactive mode. * In batch mode, nothing should have changed.
2025-10-0620-freebsd14-osx-sciteco: fixed linking against the system's libncursesRobin Haberkorn1-1/+1
Should hopefully fix errors about invalid $TERM.
2025-10-06./configure: define TE_CHECK_MODULES() which takes static linking into accountRobin Haberkorn3-23/+27
* There already was --enable-static-executables which would pass `-static` to the linker, but it did not help with library dependencies (that have to be pulled in transitively when linking statically). pkg-config does have `--static` support though. * Now all pkg-config found libraries will use `pkg-config --static` when --enable-static-executables, which simplifies linking statically. Previously you'd either need to set PKG_CONFIG="pkg-config --static" or you would have to manually list library dependencies.
2025-10-06AX_WITH_NCURSES: support $CURSES_CFLAGS and $CURSES_LIBSRobin Haberkorn2-96/+62
* We wouldn't detect the correct flags (ax_cv_curses_enhanced and ax_cv_curses_color) when CURSES_CFLAGS and CURSES_LIBS are given. * Allows to force ncurses to the SDK/system one when building for OS X (20-freebsd14-osx-sciteco).
2025-10-06removed remaining references to Github projects and updated TODORobin Haberkorn4-12/+39
2025-10-04removed the Github CI workflows: this is now fully replaced by the fmsbw.de ↵Robin Haberkorn3-526/+0
FreeBSD-based runners
2025-10-0410-freebsd14-msys-sciteco: also build Doxygen documentationRobin Haberkorn1-1/+4
This is what the Github CI workflow did previously.
2025-10-04added 20-freebsd14-osx-sciteco: this builds OS X nightly binaries via osxcrossRobin Haberkorn3-3/+78
* In contrast to the old Github workflow, we can no longer create pkgs, but instead create tar balls. You don't necessarily have to unpack it into the root, though, since the binaries are relocatable. * We cannot execute the resulting binaries, so the testsuite is no longer run under OS X. It could be executed with Darling, but only under Linux. * Resulting binaries are currently apparently fully statically linked.
2025-10-01added high-contrast color schemeRobin Haberkorn4-0/+42
* strings are bold (if supported) and bright white * comments are in italics (if supported by the terminal) * otherwise this uses the same colors as terminal.tes * should be well suited for monochrome terminals as well
2025-10-01mention both mailing list and personal mail in `sciteco --help`Robin Haberkorn2-2/+2
2025-09-28updated all links to the new "Knowledge Base" and mention mailing listsRobin Haberkorn6-23/+25
* The Knowledge Base replaces the Github wiki. * The mailing lists replace the Github bug tracker, discussions and pull requests.
2025-09-28CI: fixed Windows LTO buildsRobin Haberkorn1-21/+17
* They were broken because of a confirmed Clang bug. * As a workaround, we are switching from libstdc++ to libc++. This is not the default under MINGW64, but also works. * See also https://github.com/HolyBlackCat/quasi-msys2/issues/44
2025-09-2750-ubuntu22-appimage: build AppImages as part of the new fmsbw.de-based CIRobin Haberkorn3-4/+30
This uses an extracted pkg2appimage, since it would be tricky to get fuse to work in the Podman containers.
2025-09-24./configure --with-launcher=LAUNCHER can be used to run SciTECO with a ↵Robin Haberkorn3-5/+11
launcher command (e.g. wine or wine64) * This can be used for bootstrapping Windows binaries cross-compiled on FreeBSD or Linux without requiring a native build to be installed first. It will also allow running the test suite under Wine. While Linux allows registering Wine as the launcher via binfmt_misc, on FreeBSD we have no choice than to use --with-launcher. * Unfortunately, SciTECO cannot currently be properly built with versions running under Wine and the test suite also fails.
2025-09-23freebsd14-msys-sciteco: build Win64 Gtk binaries as wellRobin Haberkorn1-7/+63
* Also make sure that we find all DLLs. * The nightly download URL will now be https://sciteco.fmsbw.de/downloads/nightly/
2025-09-23freebsd14-msys-sciteco: disable LTO for the time beingRobin Haberkorn1-3/+5
Appears to result in new problems with win-clang++.
2025-09-23freebsd14-msys-sciteco: force cross compilation in ./configureRobin Haberkorn1-9/+21
Otherwise ./configure will try to execute compiled programs and this doesn't work since they require Wine. There is no binfmt for FreeBSD unfortunately and I couldn't get any other hack to work either. Even when adding build-system support for running SciTECO under Wine for the usual bootstrapping process, this doesn't yet fully work since there are some features that do not yet work under Wine.
2025-09-22testsuite: disable testcases with Valgrind only when detecting the fmsbw.de ↵Robin Haberkorn1-2/+2
CI runner These testcases can still be run with --valgrind on my PC.
2025-09-22website: allow build.tes to be called from out-of-tree buildsRobin Haberkorn3-10/+15
This hopefully fixes the 10-freebsd14-msys-sciteco CI job.
2025-09-22fmsbw.de CI job now also cross-compiles the Windows PDCurses binariesRobin Haberkorn2-34/+120
* This should really be in a separate job, but doing it here allows us to --disable-bootstrap since we already installed FreeBSD SciTECO binaries. * In the future, we should rather tweak the build system so it tries to invoke the cross-compiled SciTECO via Wine. * Windows Gtk port is still missing.
2025-09-21when running the testsuite with --verbose, also turn off colors (--color=never)Robin Haberkorn3-8/+8
Improves readability of the log files.