<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sciteco/src, branch v2.3.0</title>
<subtitle>Scintilla-based Text Editor and COrrector</subtitle>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/'/>
<entry>
<title>introduced true block and EOL comments</title>
<updated>2024-12-24T10:29:32+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2024-12-24T10:29:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=ef897b418a4487196e1dbc18a97046f8f0aea2e8'/>
<id>ef897b418a4487196e1dbc18a97046f8f0aea2e8</id>
<content type='text'>
* 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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Curses: fixed inserting null-byte (^@) by pressing Ctrl+@</title>
<updated>2024-12-22T16:33:48+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2024-12-22T15:54:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=8aa8c05089dd59cf669753cbf75670b58ab3a5bd'/>
<id>8aa8c05089dd59cf669753cbf75670b58ab3a5bd</id>
<content type='text'>
* g_utf8_get_char_validated() returns -2 for null-bytes (sometimes!?)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* g_utf8_get_char_validated() returns -2 for null-bytes (sometimes!?)
</pre>
</div>
</content>
</entry>
<entry>
<title>fixed lexing (syntax highlighting) of the null-character (^@) in SciTECO code</title>
<updated>2024-12-22T16:33:48+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2024-12-22T15:16:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=6cd143f86d3c39be633c1dcf5a4165f2f06a04f6'/>
<id>6cd143f86d3c39be633c1dcf5a4165f2f06a04f6</id>
<content type='text'>
* 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.)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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.)
</pre>
</div>
</content>
</entry>
<entry>
<title>fixed indention in interface-curses/interface.c</title>
<updated>2024-12-22T16:33:48+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2024-12-22T15:12:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=f4fd6de46a8d66032efd6fa86a5674edd0ec839f'/>
<id>f4fd6de46a8d66032efd6fa86a5674edd0ec839f</id>
<content type='text'>
This is a purely cosmetic change.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a purely cosmetic change.
</pre>
</div>
</content>
</entry>
<entry>
<title>fixed crashes while setting special Q-Registers with EU (string-building characters)</title>
<updated>2024-12-22T16:33:48+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2024-12-22T15:08:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=c293f725e55661ae690b52d5e8339e48b07a6a85'/>
<id>c293f725e55661ae690b52d5e8339e48b07a6a85</id>
<content type='text'>
* 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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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.
</pre>
</div>
</content>
</entry>
<entry>
<title>support external Scintilla lexer libraries and Scintillua in particular</title>
<updated>2024-12-22T16:33:48+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2024-12-21T17:57:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=c174f9be70855e89f606547cfa5471942d238038'/>
<id>c174f9be70855e89f606547cfa5471942d238038</id>
<content type='text'>
* @ES/SCI_SETILEXER/lib^@name/ now opens the lexer &lt;name&gt; in library &lt;lib&gt;.
* 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 &lt;lib&gt;?
* 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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* @ES/SCI_SETILEXER/lib^@name/ now opens the lexer &lt;name&gt; in library &lt;lib&gt;.
* 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 &lt;lib&gt;?
* 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.
</pre>
</div>
</content>
</entry>
<entry>
<title>sped up opening very large UTF-8 files by temporarily disabling the line-character index</title>
<updated>2024-12-17T09:48:41+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2024-12-17T09:48:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=715d7e151eea9126ead42834cf9f9a05a7226597'/>
<id>715d7e151eea9126ead42834cf9f9a05a7226597</id>
<content type='text'>
* 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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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.
</pre>
</div>
</content>
</entry>
<entry>
<title>fixed ^Y after FK...$: take the deleted text into account</title>
<updated>2024-12-13T21:10:52+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2024-12-13T21:10:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=8c2cac3957600637a388e5ad5809f408030a51be'/>
<id>8c2cac3957600637a388e5ad5809f408030a51be</id>
<content type='text'>
* I.e. you can now write FK...$^YD to delete up to AND the matched pattern.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* I.e. you can now write FK...$^YD to delete up to AND the matched pattern.
</pre>
</div>
</content>
</entry>
<entry>
<title>SciTECO lexing: fixed styling of commands after dollar or escape (when used as a separate command)</title>
<updated>2024-12-13T15:28:54+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2024-12-13T15:28:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=6dcb454e8dba0593b39752895addff84fea7516e'/>
<id>6dcb454e8dba0593b39752895addff84fea7516e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fixup 244a54a18b7db6af177c9d10f3224772f08d7484: abuse the Scintilla view's "identifier" to enable lexing in the container</title>
<updated>2024-12-13T12:28:04+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2024-12-13T12:17:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=7871c54db8fe2b8dcd1cb81aaec3b85099cb20a8'/>
<id>7871c54db8fe2b8dcd1cb81aaec3b85099cb20a8</id>
<content type='text'>
* 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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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.
</pre>
</div>
</content>
</entry>
</feed>
