In Development
Development track based on user requests and comments
We will be able to move macros up and down in the Macro AutoLoad List with the <Ctrl Up/Down> keys.
The new functionality will be available in the next TSE release.
"listopen" is the Semware tool that implements TSE's File -> List Open menu option, which shows a list of all open files and some info about them and which lets you perform a few actions on them.
The new "listopen" adds showing and toggling each listed file's Browse Mode.
The toggle key is <Alt B>.
The number of files in Browse Mode is shown in the list's title.
The new functionality will be available in the next TSE release.
23 Oct 2024 a user published their wish list for TSE, which included a wish for a "Write protected edit error".
I already needed to update my old "BrowsMod" extension, which helps to fulfill that wish.
I decided to completely rewrite my old "BrowsMod" extension into a new "BrowseMode" extension.
The old "BrowsMod" extension can still be found on Semware's "Classic" website.
The new "BrowseMode" will extend the old capabilities and add a new one.
The extended capabilities are, that it will automatically activate TSE's browse mode once for:
- Read-only files.
-
Buffers with names containing user-configured strings.
You can use this to automatically put an opened file in browse mode if its name contains a certain string.
For example, if it exists in a certain directory, or on a certain drive or network share.
The new capability regards the following.
-
In browse mode TSE itself often gives a warning
if you try to use a function that would change text.
However, in browse mode TSE simply does nothing if you simply try to type text.
The new extension can give you three types of signal for trying to typer in browse mode: A sound, a shortly shown pop-up message, or a warning that needs to be acknowledged.
Status 24 Nov 2024:
There is a full-featured configuration menu.
In practice I could make sense of my idea
to automatically set browse mode
for files or buffers with illegal Windows filename characters,
so I romoved it.
9 Nov 2024 a user made a request, that I interpret as that eList should not always start at line 1, but instead on a list line based on de source's current line, like a search with the "v" option does.
7 Nov 2024 a user reported that Uniview sometimes only displays a too short part of the front of a line.
Tests confirm, that this typically happens for lines with lots of "Unicode characters".
It seems to happen inconsistently, which would make it a bug.
A review of the Uniview extension makes me want to do a structural improvement of the implementation and documentation.
Development track based on my priorities
Linux TSE v4.50 rc 18 upwards (not expandable).
"DirList41" is the development version of the future "DirList" v4.1.
New so far:
-
In Windows DirList is now default independent of its environment's language settings.
This is achieved by retrieving link targets with Windows functions instead of dir commands.
This is a major step forward, even if it did create new loose ends.
Example loose ends:
- Link targets starting with weird prefixes.
- The Windows functions and the dir command each do not retrieve some of the other's details. The now default Windows functions do not retrieve some details of the link type. So I will still have to apply the dir command too for those languages for which the dir output can be interpreted. -
Gained a small but significant speed optimization by optimizing BigInt.
The access status column is now an access error column. Therefore when there is no error, "ok" is replaced by "-". When sorting this sorts all access errors together.
The "no link" indicator was changed from "." to "-". It subjectively looks better, and "-" is in my TSE WordSet, which helps accessing the column.
DirList's speed was increased again by only retrieving link targets for the link types that have them: junctions and symbolic links.
The --alllinktargets parameter generates the old list.
The --folowlinks parameter makes DirList list the child objects of directory links again. This is not recommended. -
Links are no longer followed.
This greatly reduces the run time and list size, and linked subdirectories are no longer counted multiple times in a common parent's directory size.
The following of links will later become a non-default option. - The link type column was condensed to be smaller.
- The column for TSE accessility is now a string indicating a reason.
- A link indicator (Linux) or type (Windows) column was added. Windows has a lot of link types.
- Windows: For junctions and symbolic links the link type and the link's target is now shown. It is shown between square brackets after the name, like "dir /al" does.
Still todo for DirList v4.1:
- Lots of (hopefully small) loose ends.
This project was put on hold on 15 Oct 2023, because it turned out to be so big and taking so much time, that TSE-wise it blocked everything else.
I want to take a fresh look at it, because I keep learning things about TSE, and even if only for myself, I really feel the need for a place where I can more fully document TSE.
TSE's existing help has the advantages, that it is integrated in TSE, that is has great link capabilities, that technically it has the capability to be extended, and that it works locally.
It has the disadvantages, that its content is very outdated, that users cannot update it, that Semware hardly ever updates it, that its displayed text is based on and limited to code page 437 (American), and that its underlying text format is too technical and user-unfriendly.
To use its advantages and solve its disadvantages, eHelp intends to use TSE's technical capability to extend TSE's Help.
This considered extension will replace, change and extend TSE's WordWrap functionality.
Summary of main differences with TSE's wordwrapping:
- A paragraph can also be indicated by an indented first line, a bullet point, an enumerator, a multi-line comment, a block of consecutive single-line comments, and HTML tags.
- Wordwrap scope and state is maintaned per buffer.
- Default wordwrapping is OFF.
- When turned ON it keeps wrapping the current paragraph, and turns OFF again when the cursor leaves it.
- A broader scope can be specified by the user, but then other paragraphs in the same buffer only start being wordwrapped when the user changes them.
- Right margin "0" means "the window width".
Detailed points being considered:
- The type of wordwrapping will depend on whether the type of the current buffer is a "text buffer" or a "program/data buffer".
- Here a "text buffer" means a buffer with an extension for which no comment-syntaxhiliting is defined, and all other buffers are of type "program/data buffer".
-
For a "program/data buffer":
- Wordwrapping is default off.
-
The user can toggle wordwrapping between these two values:
- Off: No wordwrapping is done.
- On: If the cursor is in a wordwrappable block, then the block is wordwrapped and keeps being wordwrapped until the cursor leaves the block.
- A wordwrappable block is a multi-line comment, a block of consecutive single-line comments, or text between HTML tags.
- Instead of "On" the extension could show the type of wordwrappable block it recognizes.
-
For a "text buffer":
- Wordwrapping is default off, unless persistence "File" applies.
-
The user can cycle wordwrapping through these persistences:
- None: No wordwrapping is done.
- Paragraph: The current paragraph is wordwrapped and keeps being wordwrapped until the cursor leaves the paragraph.
- Buffer: As "Paragraph" plus the same for other paragraphs in this buffer. For switched-to paragraphs wordwrapping starts when the user makes a change.
- File: As "Buffer" plus for this file it persists across TSE sessions.
-
Wordwrapping will honor TSE's left and right margin
settings.
When the right margin is 0, wordwrapping will use the width of the editing window.
-
A paragraph is a piece of text in a "text buffer" delimited by:
- An empty line.
- An indented line at the start of the paragraph.
- The start of a bullet point.
- The end of a bullet point.
- Bullet points can have levels: A bullet point can contain bullet points.
-
Wordwrapping "text between HTML tags" will only be done for
text between tags that contains no other tags,
other than a few excepted tags.
Such excepted tags: <strong>, <em>, <br>.
<br> will act as a wordwrap delimiter.
Text between <pre> tags will not be wordwrapped. - The extension will show TSE's "W" indicator in the status bar when a block or paragraph is actively being wordwrapped.
-
Probably: Recognize other tag extensions than ".html" and ".htm".
It is not uncommon to encounter .xml files where the whole file is in 1 line. While the xml structure would need to be reformatted by another program, it might become this program's task to wrap the lines inside tags. - Maybe: If the "Status" extension is installed, then it could (optionally) be made to show which type of wordwrapping is active.
- Maybe: Change the background color for an actively being wordwrapped paragraph or block.
Notes:
-
Semware and I mainly use a "-" as a bullet point.
Other seen bullet points are "*", "+" and "ú".
The "ú" is shown as a bullet ("∙") in some OEM character sets. TSE's Help is shown using the system's OEM character set.
In Windows GUI TSE's ANSI character set, characters 149 ("•") and 176 ("°") could be bullet characters too. - I use bullet points inside comments, so it makes sense to me that there they should be wordwrapped too.
- The text of the "Expr" macro has two different occurrences of when to ignore "bullet points".
-
Examples of how to wordwrap bullet points.
Not like this:
Groceries: - The red laundry detergent
but like this:
Groceries:
- The red laundry detergent
And not like this:
Groceries:
- The red laundry
detergent
but like this:
Groceries:
- The red laundry
detergent
(Are my clothes real? Do I want to find out and take the red laundry detergent, or belay my suspicions and take the blue one?) -
I would like to recognize and support enumerators.
For example "1", "1.1", "a.", "a}", "(1)", etc.
But probably not ones that use roman numerals.
Note that enumerators either have their own line or prefix the first line of a paragraph.
Enumerators impact wordwrapping in 2 ways:
An enumerator is a paragraph delimiter.
If an enumerator prefixes the first line of a paragraph, then it counts as whitespace regarding its paragraph's indentation. -
Importing and exporting wrapped text.
Text is wrapped per paragraph.
Paragraph recognition differs between TSE and Word, for example.
In TSE a paragraph is recognized by a blank line or by an indented or outdented first line. This is an existing setting.
In Word a paragraph is recognized by "the enter key".
If you copy a text from Word to TSE, then each Word paragraph becomes a single line.
This implies, that also functions are required to wrap/unwrap a buffer or block of text that was/will be imported/exported from/to some other applications.