aboutsummaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)AuthorFilesLines
2013-02-14micro state machine for Q-Register specifications: allow long Q-Reg namesRobin Haberkorn2-16/+100
syntax is as follows: ["."]("#" CHR1 CHR2 | "{" STRING_BUILDING "}" | CHR1) * the short one/two char names are turned upper case, while no case folding is performed on verbose names
2013-02-14rewritten string building state machine using a common MicroStateMachine ↵Robin Haberkorn2-125/+140
base class * uses label pointers instead of state-enum and switch case (both faster and shorter to write) * common interface for all micro state machines: makes them reusable
2013-02-11properly support <CTL/Z> suspension as immediate commandRobin Haberkorn1-0/+12
see comment: special handling of <CTL/Z> in terminal might be disabled, or commandline input might be in X11 window...
2013-02-11<CTL/U> immediate editing command to rubout current string paramRobin Haberkorn1-0/+9
when not in string-state, <CTL/U> is self inserting (unlike traditional TECO where it would clear your entire commandline)
2013-02-11fixup: word-rubout may rub out nothingRobin Haberkorn1-4/+3
2013-02-11States::is_string() to check whether current state is a string-stateRobin Haberkorn2-7/+14
2013-02-11support <CTRL/W> immediate editing command: depending on context, rub out ↵Robin Haberkorn1-0/+24
words or entire commands * when rubbing out words (in string params), use Scintilla's definition of a word
2013-02-11support <CNTRL/T> immediate editing command only in string parametersRobin Haberkorn1-31/+32
* fixes autocompletion at the beginning of string params * is also available in filename commands and would allow filename completion after string beginning * also did some editing command cleanup
2013-02-08updated TODORobin Haberkorn1-2/+13
2013-02-08fixed ring.current/QRegisters::current corruptionRobin Haberkorn3-8/+11
occurs when rubbing out a switch from q-reg string or to q-reg string
2013-02-08updated TODO: implemented "{" and "}" commandsRobin Haberkorn1-1/+0
2013-02-08reverse Execute::step() change: no need to pass parameters by referenceRobin Haberkorn3-6/+4
cmdline and cmdline_pos is no longer modified by code executed by step() instead it is modified at the outermost macro level (commandline macro level)
2013-02-08use special Q-Register $ (<ESC>) to hold the replacement commandlineRobin Haberkorn3-25/+20
* allows us to switch between buffers/registers when editing the commandline
2013-02-08delegate commandline replacements ("}") to the cmdline macro levelRobin Haberkorn5-60/+77
allows commandline editing scripted by macros
2013-02-03first draft of commandline-editing commands ({ and } as in VideoTECO)Robin Haberkorn5-28/+89
* simplified traditional commandline editing. no need to extend cmdline string one character at a time when inserting multiple. instead there's a marker (cmdline_pos) specifying the macro length to execute in a "step" and also the anchor for generating undo tokens * implementation does not yet work in macro calls * while editing the commandline, other buffers/registers may not be edited (need push-down-list and auxiliary q-register)
2013-02-03Merge branch 'master' of github.com:rhaberkorn/scitecoRobin Haberkorn12-24/+39
2013-02-01perform additional expansions on explicitly-specified Scintilla pathsRobin Haberkorn1-1/+3
a common ./configure parameter would be --with-scintilla=~/scintilla. however the calling shell will not expand tilde and the invoked shell will not automatically fully expand variables.
2013-02-01fixed buffer Ring initializationRobin Haberkorn10-21/+34
* there was a dependency on interface initialization. it did not cause issues because destruction order was by chance. * introduced INIT_PRIO and PRIO_* macros to easy initialization order declaration (using a PRIO_* formula makes code self-documenting) * also used this to clean up QRegisterTable initialization (we do not need the explicit initialize() method) * also used to clean up symbols initialization
2013-01-31fixed bootstrapping using sciteco-minimal and bootstrap autodetectionRobin Haberkorn2-2/+2
was broken due to untested changes
2013-01-29updated TODORobin Haberkorn1-0/+4
2013-01-29fixed backward search-and-kill (e.g. -FK...$)Robin Haberkorn1-9/+19
2013-01-27prevent creating Scintilla UNDO token when FD or FK failsRobin Haberkorn1-14/+22
rubout would undo something different and screw up editor state
2013-01-27added lexer configuration (syntax highlighting) for patches, Unix Shell and ↵Robin Haberkorn1-1/+73
Microsoft Batch
2013-01-27use actual binary directory for shebang example in manpageRobin Haberkorn2-1/+2
2013-01-27fixed scintilla symbol autocompletionRobin Haberkorn1-3/+3
do not accidentally overwrite the Scintilla (SCI_...) message symbol set
2013-01-27moved redundant code related to bootstrapping and teco-driven substitutions ↵Robin Haberkorn4-36/+21
into automake include (bootstrap.am)
2013-01-27moved manpage to doc/ subdirRobin Haberkorn5-7/+23
later there will be much more documentation
2013-01-27revised lexer configuration using SciTE property files and Textadept's ↵Robin Haberkorn5-100/+108
terminal color definitions * lexer config is now in separate file installed into the package data dir, so it can be excluded from the teco.ini template. * teco.ini is generated so it can load an installed lexer.tes as ED hook (can still be dropped into the user's home and will work immediately)
2013-01-23updated sciteco(1) manpage: document --eval optionRobin Haberkorn1-0/+9
2013-01-23generate manpage sciteco(1) using a TECO macro included in the MakefileRobin Haberkorn3-12/+30
allows including the currently chosen PREFIX * also removed sciteco_datadir variable (pkgdatadir defined by Automake is sufficient)
2013-01-23added --eval commandline option allowing code to be executed on the commandlineRobin Haberkorn1-1/+19
useful, e.g. in Makefiles
2013-01-23distribute new cmdline.hRobin Haberkorn1-1/+1
2013-01-23cleaned up QRegister state interface (can pass register by reference)Robin Haberkorn4-60/+57
2013-01-23moved StateExpectQReg from parser.h to qregisters.hRobin Haberkorn5-50/+48
* parser.cpp|h should be reserved for generic and misc. stuff. the StateExpectQReg class is used almost exclusively by qregisters.cpp|h * resolves a circular header dependency issue
2013-01-23implemented special save last commandline command ("*" at beginning of ↵Robin Haberkorn8-6/+77
commandline macro) * only works as part of commandline macro, * at the beginning of other macros, it is treated like an arithmetic asterisk * variables defined in cmdline.cpp are now declared by new cmdline.h
2013-01-22fixed: macro program counter is fixed after error occurred while executing ↵Robin Haberkorn2-2/+4
commandline fixes errors in loops or loop interruptions (may leave program counter somewhere in the loop)
2013-01-22This reverts commit 821c61e9967e62fd81038e4b879c5452bffe2dfb.Robin Haberkorn1-9/+30
memory mapping the entire file has been benchmarked to be less efficient than the old implementation (because of more than doubling page faults). A lengthy comment has been written to discuss different implementations of file reading.
2013-01-21improved reading files by using memory-mappingRobin Haberkorn1-6/+9
* file must be in primary memory for scintilla * we cannot write to scintilla's buffer memory directly * so mapping the file is best: in the best case it is not copied to primary memory and resides in kernel cache * in any case, mapping to memory is faster than read()ing into primary memory * copying from mapped virtual memory to scintilla buffer (via SCI_APPENDTEXT) is faster than copying from primary memory
2013-01-21fixed: preserve access mode and ownership (if possible) of file when savingRobin Haberkorn2-20/+113
* works with/without save-points (i.e. in batch and interactive mode, both were broken) * improved file-saving performance (avoid buffer gap removal) * only root can preserve the ownership of a file owned by another user after file saving
2013-01-20minor manpage fixes and README updatedRobin Haberkorn2-8/+16
2013-01-20added manpage highlighting program invocation and batch modeRobin Haberkorn5-3/+173
language and commands will be described in separate documents
2013-01-20fixed search-replace commands if search fails (do not insert then)Robin Haberkorn3-7/+64
* updated TODO
2013-01-20added patch enabling TECO-style (^X) control code echoing in ScintillaRobin Haberkorn4-2/+34
in the future, I might submit a more elaborate Scintilla patch for configuring the control code strings.
2013-01-19added TODO listRobin Haberkorn3-0/+33
also updated AUTHORS
2013-01-19support only Scinterm >= v1.1 (contains SCI_COLOR_PAIR macro and indirectly ↵Robin Haberkorn2-6/+1
fixes PDCurses support)
2013-01-19updated copyright (2012-2013)Robin Haberkorn26-26/+26
2013-01-19allow <CTRL/C> to be typed; aborts last typed charRobin Haberkorn5-2/+42
* CTRL/C will be a command so it is important to be able to type it directly * aborting character processing is important because it allows aborting infinite loops * since the loop interruption currently relies on SIGINT handling, there is only limited support for XCurses and GTK - CTRL/C has to be typed in the terminal window. later support for input queue polling might be added
2012-12-05windows compatibility changesRobin Haberkorn5-31/+22
* respect executable extensions * do not use weak symbols which appear to be broken on MinGW. Instead, the generated symbol constants contain constructor functions initializing the corresponding objects. Constructor priorities are used to ensure that the initialization takes place after the dummy (NULL) initialization. * do not change the working dir (causes trouble when sciteco gets passed relative paths but the exe is not in the current dir) instead look for teco.ini in program's directory
2012-12-04added copyright notice to every source fileRobin Haberkorn26-0/+442
2012-12-04updated README (autoconf-based build system)Robin Haberkorn1-4/+7