alited v1.0.6 stands for "a lite editor".
The main features of alited are:
It satisfies most requirements of Tcl Editors, adding its own features.
Edited by alited are Tcl/Tk files. The C/C++ code is another target of alited, still for Tcl/Tk development only all the same.
alited facilitates the development and the maintenance of Tcl/Tk code, particularly because of the unit tree being a sort of documentation.
alited is suspected of being very good with large Tcl/Tk projects, i.e. when, in one session, you deal with 30-40-50... Tcl/Tk scripts, to say nothing of others.
It's quick at starting.
It's quick at switching projects.
It's quick at organizing Tcl/Tk code.
It's quick at navigating Tcl/Tk code.
It's quick at searching Tcl/Tk code.
It's quick at writing Tcl/Tk code.
It's quick at testing Tcl/Tk code.
It's quick at saving Tcl/Tk code.
It's quick at maintaining Tcl/Tk code.
Briefly, alited is totally quick, being at that a pure Tcl/Tk application.
Links:
For a quick acquaintance of alited, a few of demo videos are available:
Below is a screenshot of alited, just to glance at it:
... and its localized and themed variant:
... and its themed variant on Windows 10:
tma 2021-12-30: Under Windows 'alited' creates a directory '.config' in the users home directory with every start. Application config files should be in APPDATA=C:\Users\<UserName>\AppData\Roaming\<AppName>.
HE 2021-12-30: Alited looks promising but directly after starting I found one or better, two issues which let me directly stop my experiments.
Opening a ticket on github is only possible for registered users so this is not a possible way for me to inform the author.
Therefore, I added a Discussion section to provide what I found.
Alited opens a server socket on 127.0.0.1:51837 by using the package comm. This is not possible to change without changing the code. Neither the used port nor that the port is opened for listening.
This is an issue in a couple of cases:
Two user foo and foo1. foo starts alited. foo1 starts tclsh and executes the following:
package require comm comm::comm send 51837 exec touch ~/securityIssue.txt comm::comm send 51837 exit exit
This created a new text file and than closed the alited instance of foo. To make it clear, this allows everything to be executed by foo1 in context of foo what exec accepts. So you can destroy all the data foo can reach. I don't understand the need to use comm with -listener 1 for alited. The documentation does not describe a use case for it. At least I doesn't find it. To remote control an application to be tested, the listener mode of comm is not needed in alited.
To check for another running instance of the user also can be done in a different way. For example, assuming a local installation of the user with a lock file.
Perhaps one can explain the reason for using comm in listener mode?