[OT] Atom Text Editor for Script Editiing - First Impressions

Kay C Lan lan.kc.macmail at gmail.com
Fri Sep 4 03:08:59 EDT 2015

On Thu, Sep 3, 2015 at 10:01 AM, Alejandro Tejada <capellan2000 at gmail.com>

> What kind of functionality these Text Editors
> have that a 4 MB LiveCode Executable
> could not have?????
> From another post I made which if I knew how I'd provide a link to but
because I don't here it is repeated:

(and just to add to this list, my Text Editor does all these items for 56
code syntaxes, and at least 21 actual langues like Chinese, Korean etc etc)

Off the top of my head:

1) copy & paste via keyboard
    How many times have you copied from somewhere external and you can't
use the keyboard to paste it into LC. Either you need to use the mouse+menu
or the data isn't even there - in which case I find myself pasting the data
into a text editor, copying it again and then pasting into LC. (this is
more a long standing bug of LC and not just the SE)

2) customiseable keyboard shortcuts
    It's just nice and convenient to be able to allocate ANY of EVERY
single menu item a keyboard shortcut. Time saver.

3) more script space, less wasted space
    Because the SE doubles as the debugger it has a LOT of wasted space. I
want my SE to be 90% text, the rest tools and nicities, like my TE. I want
my debugger sort of the opposite, 40% script and the rest debugging info -
typically I can't see enough variable values. As someone else pointed out,
why can't I view Variables and breakpoints concurently when debugging? Why
does the Error message need as much space as the Variable viewer? I've
never seen one that's taken up more than two lines, and even then it could
all be displayed on one line. Effecient workspace.

4) autocompletion
    The flexibility of not using explicit variables with the safety net of
spelling them correctly all the time. Time saver.

5) spellchecking
    Can load custom dictionaries so whilst mine generally checks I spell
colour correctly, for LC work I can make sure I spell it the other way.
Time saver.

6) boilerplates
    I can type in switch and a little popup will come up with switch3,
switch3d, switch4, switch4d,... switch9, switch9d. I can either click on
one or type switch5d and press return and a bare switch statement with 5
case entries will be created for me including the default structure. If I
didn't specify the d at the end, no default structure is included. Actually
99% of the time I use the switch default structure as a place to catch
logic errors so my boiler place includes:
        answer "A Case I Haven't Considered. Check the Variables." titled
"Switch Case Error"
    end switch

All typed out for me automatically. Time Saver

7) Inbuilt scripting
    Strange that for a scripting language this is listed. Take this SQL

    SELECT * FROM table WHERE f1 = "AA" AND f2 = "BB" AND f3 = "DD"

    if I need to do this:

    put "SELECT * FROM table WHERE f1 = "AA" AND f2 = "BB" AND f3 = "DD""
into tQuery

    it will not work because of the quotes in SQL have a different meaning
to LC so I need to replace all those " with " & quote & " - except the
first and last ". Yes, I appreciate I could do it manually with Find and
Replace but that's slow, or I can modify LC to allow me to run a script to
do that selective replacement similar to what I do in my TE, but I'm just
surprised at how much easier it is to do im my TE and just a keystroke a
way. Time saver.

8) folding
    The ability to collapse a handler, control structure, multiline
comments down to a single line - an absolute godsend. Again I want the text
I'm interested in to cover 90% or more of my screen. So many times,
portions of what I'm focusing on are spread over just more than what is
displayed in the SE - why is that? Copy and paste into my TE and most of
the time I'm sweet, but often enough I wish I was able to collapse a 5 case
switch statments down to a single line and remove the 4 line comment
because then what I need to be looking at would all be viewable. Can be
done with other languages. You wont appreciate it until you've used it.

9) bracket pairing
    How many times has your code been in error because of a mismatch in
brackets? Every TE worth it's salt provides some sort of indication of
bracket pairing, not just whilst you type the brackets, but also you can
come back and click on a bracket and it's mate will be hilighted. Also, an
unmatched bracket is highlited immediately, not when you go to Apply/Save.
Time saver.

10) search and replace remembered
    The last 10 searches and replacements are stored, although I think
that's only because I set it to 10. As most of my search and replace are
regex, and I'm NOT very good at it, having these saved is extremely
convenient. Nice feature.

11) regex search pattern validation
    Any serious work with text will at some time require a bit of regex.
Whilst building regex search and replace patterns my TE automatically
validates the code. To be fair, LC has a built in Regex Builder so you can
test your regex prior to use, but this isn't quite as nice as having it
automatically check your Find or Replace box entry. Nice feature

12) regex manual
    Because I don't do too much regex, unless it's very basic I always need
to refer to a syntax manual. My TE has one built in. Nice feature

13) unlimited undo/redo
    Enough said. Time Saver.

14) versioning
    Happens automatically locally. Can easily intergrate with Git or SVN
systems. Essential for serious work.

15) difference comparison
    Once you've gone down the versioning, Git, SVN route you HAVE to be
able to easily find differences and move chunks of text from one version to
another. Essential for serious work.

Again, that's only off the top of my head.

More information about the use-livecode mailing list