Hello all,
TL-DR: Can SynEdit "relatively easily" can do multi-caret stuff?
Long version:
I'm a long time programmer, but new to lazarus. I'm trying to make my own free and legal mini-toad for database development and administration.
I looked at a couple of different possible editors with syntax highlight and there are a lot of great features, but none can be easily controled for my goal (displaying database info in a grid or running custom batches on the selected text or something like that).
So, I'm looking to code one myself and invest a good bit of time. I saw SynEdit Control in Lazarus, Scintilla dll mostly for C++ and .Net Dev, and Jedit for java, which all have the code available and are free or mostly free. I wanted to be sure I won't get stuck somewhere and need to check another alternative.
There are a couple of features I need to have or code:
Those that I could find easily and already available in Synedit:
* Syntax Highlight (obviously)
* Folding (there are some samples)
* Be able to add tables and columns as keywords (TSynSQLSyn can for tables, not for columns, probably need a custom highlighter)
* Be able to add other keywords (like custom procedures and functions, easy if I build a custom highlighter)
* Auto-suggest / auto-complete the tables and columns (there are some different samples, I could probably find something already usable in there)
* Block/Column mode selecting (already there with one property)
Those that I couldn't find or easily do, related to typing more than one place at the same time:
* Block/Column mode editing (drag selecting a vertical line and start typing in all of those rows)
* Multi-caret mode (I've seen the Ctrl+J mode in Lazarus Ide, which would probably suffice for my needs if I knew how it worked, but can't decode how for now. The best would be like in Jedit, being able to have a mode that can multi-select more than one part and typing in all of those)
* Being able to search and replace by regular expressions (ideally having the multi-caret mode in each of those places like in sublime text editor)
and another one for the fun:
* Case change for the keywords (like the good old vba code in office, if the keyword is "Select" and I type sELECT because of capslock, I want it to change automatically after typing or after changing line. I can put in uppercase if I change the TSynSQLSyn GetTokenAttribute, but it's not exactly what I want. I might get somewhere with the custom highlighter sample, and using the slow mode instead of hash, but if there's a better alternative...)
I know Scintilla should be able to do those features if I spend enough time, but I couldn't get a simple (except c++) programming language that can easily give access to the scintilla control and have a good database grid or even a simple grid.
Thanks