Age | Commit message (Collapse) | Author | Files | Lines |
|
* the filenames contain commit hashes now, so it's no longer trivial to do with wget
* should fix nightly builds
|
|
* Allowing label redefinitions might have been useful when used as comments,
since you will want to be able to define arbitrary comments.
However as flow control constructs, this introduced a certain ambiguity since
gotos might jump to different locations, depending on the progression
of the parser.
* On the other hand, making label redefinition an error might disqualify labels as
comments when writing or porting classic TECO code.
Therefore, it has been made a warning as a compromise.
* Added test case
|
|
Should improve the SciTECO site at the AppImages Hub (appimage.github.io).
We will have to make another PR before the site gets updated.
|
|
* This means you should be able to install them into non-root directories. E.g.:
sudo installer -pkg sciteco-curses_nightly_macos_x86_64.pkg -target test-installation
|
|
Analoguous to :EX, but always saves the file like EW$, not only if it's dirty.
|
|
* This is not simply determined at compile-time but queries the concrete path
at least on Windows and OS X.
* The Windows implementation is kind of hacky and relies on undocumented behavior.
It's also not even tested yet!
* On Linux and FreeBSD completions will always be case-sensitive as they used to be.
There does not appear to be any API to query case sensitivity of a given path or even
the entire file system.
At most, we could white-list a number of case-insensitive file systems.
|
|
|
|
|
|
* This is done via the new opener.tes in the standard library.
* Some programs that use $EDITOR expect the +line syntax to work.
* You can copy filename:line:column directly from GCC error messages
and filename:line from grep output.
* Since there may be safe file names beginning with "+" or containing colons,
there needs to be a way to turn this off, especially for scripts that don't
know anything about the filenames to open.
This is done with "--".
Unfortunately, the first "--", that stops parameter processing,
is always removed from the command line and not passed down into TECO land.
This is not a problem for stand-alone scripts,
since the script filename is already stopping option processing, so "--"
would get passed down.
But when calling the profile via `sciteco -- ...`, you could prevent leading
minus signs to cause problems but since the `--` is removed, opener.tes cannot
use it as a hint.
Therefore, we introduced `-S` as a new alternative to `--`, that's always passed
down as `--` (i.e. it is equivalent to "-- --").
In other words, `sciteco -S *` will always open exactly the specified files
without any danger of misinterpreting certain file names.
Should we ever switch to a custom option parsing algorithm, we might preserve
"--" (unless after --mung) and thus get rid of "-S".
* This advanced behavior can be tweaked by the user relatively easily.
In the easiest case, we could replace M[opener] with
<:L;R 0X.f [* @EB/^EN.f/ ]* L>
in ~/.teco_ini to completely disable the special syntax.
|
|
|
|
|
|
* Hopefully makes the log easier to read in case of failures.
There may still be 2 runs concurrently since we build Curses and Gtk in parallel.
* Updated homepage.
* Ubuntu plucky builds are failing.
See https://launchpadlibrarian.net/765999455/buildlog_ubuntu-plucky-amd64.sciteco_2.3.0-0ppa1~plucky1_BUILDING.txt.gz
This may have been a spurious failure due to xvfb-run.
It may be less likely with --no-parallel.
Theoretically we could bump the Debian package version in order to test that,
but the PPA is practically not used by anybody anyway.
|
|
g_module along with glib anyway
|
|
|
|
|
|
* 32-bit binaries have been dropped, even though we could build both.
But there is virtually no demand for 64-bit binaries left.
* I continue to build 32-bit versions during CI, so that at least
something still builds and tests under 32-bit.
|
|
* This does not build the current source tree.
You must still have a properly set up ports tree somewhere.
|
|
|
|
Turns out that the FreeBSD ports Makefiles install programs and scripts with 0555 by default,
i.e. without write permissions.
This broke the install-exec-hook unless building as root.
Unfortunately, this also broke the Poudriere builds at the FreeBSD build servers.
See https://pkg-status.freebsd.org/package19/data/141amd64-default-build-as-user/aa1f9b124e36/logs/errors/sciteco-curses-2.2.0.log
|
|
* This goes into session.vcs as well.
* `fossil info` does not allow printing only the local-root property, so we have to do
some parsing afterwards.
|
|
* In fact, since SVN has --no-newline, this is even simpler than on Git and Mercurial.
* This requires at least Subversion v1.9 (2015, so should be safe).
|
|
autoconf archive (including CI)
|
|
* Turns out that on SunOS/OmniOS the ncurses port does not ship with
a ncursesw pkg-config file, but the ncurses file is for a version,
that does contain widechar support as well.
* Instead of adding yet another recursive PKG_CHECK_MODULES() call,
we now use the AX_WITH_CURSES() macro, which is probably more robust.
This should at least fix ./configure on OmniOS.
* It also adds a number of feature C macros, that could be useful to
check in the future.
* At the moment, we strive to support all X/Open-compatible Curses
libraries, but both enhanced and color functions are required.
Therefore plain SVr4 Curses is not supported.
* source: https://www.gnu.org/software/autoconf-archive/ax_with_curses.html
|
|
* The previous convention of !* ... *! are now true block comments,
i.e. they are parsed faster, don't spam the goto table and allow
embedding of exclamation marks - only "*!" terminates the comment.
* It is therefore now forbidden to have goto labels beginning with "*".
* Also support "!!" to introduce EOL comments (like C++'s //).
This disallows empty labels, but they weren't useful anyway.
This is the shortest way to begin a comment.
* All comment labels have been converted to true comments, to ensure
that syntax highlighting works correctly.
EOL comments are used for single line commented-out code, since it's
easiest to uncomment - you don't have to jump to the line end.
This is a pure convention / coding style.
Other people might do it differently.
* It's of course still possible to abuse goto labels as comments
as TECO did for ages.
* In lexing / syntax highlighting, labels and comments are highlighted differently.
* When syntax highlighting, a single "!" will first be highlighted as a label
since it's not yet unambiguous. Once you type the second character (* or !),
the first character is retroactively styled as a comment as well.
|
|
* They are used at runtime only by the GTK port.
* Their existence can cause problems if OS-specific build systems
have to clean these files from the staging directory afterwards.
This was the case on FreeBSD where the committer refused to remove
these files after installation.
In the official FreeBSD port, we therefore currently ship the
PNG icons unnecessarily.
* They are now installed and shipped only on GTK builds.
|
|
|
|
This is not done automatically when building ports.
The FreeBSD binaries were thus the only ones without LTO.
We should prefer WITH_LTO, even once we add something like --enable-lto,
as WITH_LTO enables Clang-specific ThinLTO support.
|
|
|
|
* g_utf8_get_char_validated() returns -2 for null-bytes (sometimes!?)
|
|
* Apparently g_utf8_get_char_validated() sometimes(!) returns -2 for null-characters,
so it was considered an invalid byte sequence.
* What's strange and unexplainable is that other uses of the function, as are behind nA and nQq,
did not cause problems and returned 0 for null-bytes.
* This also fixes syntax higlighting of .teco_session files which use the null-byte as the
string terminator.
(.teco_session files are not highlighted automatically, though.)
|
|
This is a purely cosmetic change.
|
|
characters)
* The teco_qreg_vtable_t::get_string() method should support returning the
length optionally (may be NULL).
This already worked with teco_doc_get_string(), even though it wasn't documented,
and therefore didn't cause problems with regular Q-Registers.
|
|
* @ES/SCI_SETILEXER/lib^@name/ now opens the lexer <name> in library <lib>.
* You need to define the environment variable $SCITECO_SCINTILLUA_LEXERS to point
to the lexers/ subdirectory (containing the *.lua files).
Perhaps this should default to the dirname of <lib>?
* The semantics of SCI_NAMEOFSTYLE have been changed:
It now returns style ids when given style names, so you can actually write
Scintillua lexer *.tes files.
This will be superfluous if we had a way to return strings from Scintilla messages into
Q-Registers, e.g. 23@EPq/SCI_NAMEOFSTYLE/.
* We now depend on gmodule as well, but it should always be part of glib.
It does not change the library dependencies of any package.
It might result in gmodule shared libraries to be bundled in the Win32 and Mac OS
packages if they weren't already.
|
|
installation
* use the new ::FS and ^Q commands
|
|
Rodrigo Osorio re-included the PNGs even for sciteco-curses.
Should be fixed at the Autoconf-level, by only installing the PNGs on GTK.
|
|
Unfortunately, it does not help with the slowdowns when editing files with very long lines.
|
|
line-character index
* checks for character consistency (of UTF-8 byte sequences) were slowing down things significantly in Scintilla
* It got even worse if the file indeed contained non-ANSI codepoints as reading in chunks of 1024
would sometimes mean that incomplete byte sequences would be read.
Some large 160mb test files wouldn't load even after minutes.
They now load in seconds.
* This does NOT yet solve the slowdowns when operating on very long lines.
|
|
frontend to alt.lang.teco
* This appears to be the only remaining working web frontend to alt.lang.teco.
* There is https://www.usenetarchives.com/threads.php?id=alt.lang.teco
which has an archive of very old posts, which is cool, but they appear to have
stopped synchronizing somewhere around 2022.
* https://alt.lang.teco.narkive.com/ is broken and also not fully synchronized.
* Google Groups stopped working in February 2024.
* The FreeBSD port isn't yet in any quartely branch, so it's unlikely somebody can
just pkg install it (yet).
|
|
ircs-URLs (refs #29)
|
|
|
|
It's a bit easier on the eyes.
|
|
* I.e. you can now write FK...$^YD to delete up to AND the matched pattern.
|
|
as a separate command)
|
|
|
|
"identifier" to enable lexing in the container
* SCI_SETILEXER(NULL) is not a reliable way to do that since
that's the default for all views.
* This was breaking the git.tes lexer for instance and was unnecessarily
driving teco_lexer_style() on plain-text documents.
* Since we currently do not implement the ILexer5 C++ interface
and teco_view_t is just a pointer alias, we are abusing the view's "identifier" instead.
This is probably sufficient, as long as there is only one lexer "in the container".
Otherwise, there should perhaps be a single C++ class that does nothing but
wrapping a callback into an ILexer5 object with a C ABI.
|
|
* We don't actually have to negate ^S results after FK.
For deleting the matched pattern, you can use ^YD or -^SD.
|
|
|
|
|
|
* this works by embedding the SciTECO parser and driving it always (exclusively)
in parse-only mode.
* A new teco_state_t::style determines the Scintilla style for any character
accepted in the given state.
* Therefore, the SciTECO lexer is always 100% exact and corresponds to the current
SciTECO grammer - it does not have to be maintained separately.
There are a few exceptions and tweaks, though.
* The contents of curly-brace escapes (`@^Uq{...}`) are rendered as ordinary
code using a separate parser instance.
This can be disabled with the lexer.sciteco.macrodef property.
Unfortunately, SciTECO does not currently allow setting lexer properties (FIXME).
* Labels and comments are currently styled the same.
This could change in the future once we introduce real comments.
* Lexers are usually implemented in C++, but I did not want to draw in C++.
Especially not since we'd have to include parser.h and other SciTECO headers,
that really do not want to keep C++-compatible.
Instead, the lexer is implemented "in the container".
@ES/SCI_SETILEXER/sciteco/ is internally translated to SCI_SETILEXER(NULL)
and we get Scintilla notifications when styling the view becomes necessary.
This is then centrally forwarded to the teco_lexer_style() which
uses the ordinary teco_view_ssm() API for styling.
* Once the command line becomes a Scintilla view even on Curses,
we can enabled syntax highlighting of the command line macro.
|
|
|