Commit Graph

226 Commits

Author SHA1 Message Date
Cheer Xiao
9c2b6871b3 Define edit.tty.Termios entirely in terms of C.struct_termios
syscall and unsafe imports are no longer needed.
2014-10-06 23:22:28 +02:00
Cheer Xiao
5069fd9774 FreeBSD compatibility fix. 2014-10-01 02:07:11 +02:00
Guangyu Zhang
e0212a7353 Add Mac OS X support 2014-09-28 10:29:20 +08:00
Cheer Xiao
8a5f2513b3 edit: Remove Highlighter.
The new Highlighter will be a completely different thing.
2014-09-21 22:36:57 +02:00
Cheer Xiao
613ad85a96 Introduce Subscript between Compound and Primary
Subscription is no longer implemented as caret. As a result,
`set $a table = [foo]; echo bar$a[0]` now works as expected.
2014-09-16 21:12:46 +02:00
Cheer Xiao
2451dc0cf9 A term is now a compound expression. A term list is now a spaced expression. 2014-09-16 17:57:33 +02:00
Cheer Xiao
319e2d9274 A factor is now called a primary expression. 2014-09-04 17:17:10 +02:00
Cheer Xiao
a3c8ed4876 Instead of specialized parse.Context, just use the incomplete parse tree 2014-08-22 09:12:18 +02:00
Cheer Xiao
776c1b3824 edit: SIGINT should not reset editorState.savedTermios
This resolves issue #29.
2014-07-29 10:30:47 +08:00
Cheer Xiao
ce7dcebb1c edit: Update an outdated comment 2014-07-29 10:25:22 +08:00
Cheer Xiao
397be11049 Reworked evaluation procedure. This resolves issue #2.
eval.Checker is now replaced by eval.Compiler which compiles the AST into a
closure operating on the Evaluator. Huge commit, sorry.
2014-04-30 10:46:36 +08:00
Cheer Xiao
70be7dcd90 Slightly more accurate highlighting of commands 2014-04-15 21:18:10 +08:00
Cheer Xiao
0761040225 Really ignore instead of panic on bogus CPR 2014-04-15 11:34:03 +08:00
Cheer Xiao
cd38cbe45e Remove bogus comments 2014-04-15 10:52:39 +08:00
Cheer Xiao
227343fffe edit: On encountering error in navigation.refresh, store it and continue 2014-04-15 10:51:23 +08:00
Cheer Xiao
06a0760ede New editor builtin kill-word-left 2014-03-30 15:03:04 +08:00
Cheer Xiao
a7bfa40302 edit.New -> .NewEditor 2014-03-20 13:16:20 +08:00
Cheer Xiao
b01a9befbd edit: Synchronize control of edit.Reader too 2014-03-17 22:54:42 +08:00
Cheer Xiao
98c034f581 util/async-reader.go: set file back to blocking mode and sync properly 2014-03-17 22:47:09 +08:00
Cheer Xiao
4a1415dcda Much better sys.SetNonblock... 2014-03-17 22:39:57 +08:00
Cheer Xiao
b0719d087c Color commands after ( and ?( 2014-03-17 22:00:35 +08:00
Cheer Xiao
06b0098705 Status redir now uses ?>. Introduce ?( for status substitution 2014-03-17 17:07:38 +08:00
Cheer Xiao
31451c572a Lex, color and highlight the new status redir token >? 2014-03-17 11:23:32 +08:00
Cheer Xiao
a6f9b61459 edit: Only put non-empty lines into history 2014-03-16 23:07:45 +08:00
Cheer Xiao
336815fe4b edit: Ditch cancel-history, just use start-insert 2014-03-13 22:30:23 +08:00
Cheer Xiao
36ab4b4f12 edit: Fix history 2014-03-13 22:27:38 +08:00
Cheer Xiao
370b88cfea edit: Get rid of leReturn.newMode and changeMode 2014-03-13 22:21:58 +08:00
Cheer Xiao
8e56d98994 edit: Put all transitional states in editorState 2014-03-13 22:14:49 +08:00
Cheer Xiao
f034e85888 edit: editorState.history is now not a pointer 2014-03-13 15:53:48 +08:00
Cheer Xiao
38a8c657fc edit: Reset ed.navigation properly 2014-03-10 21:34:54 +08:00
Cheer Xiao
de062a03d1 edit: Handle SIGWINCH and SIGINT
SIGINT handling is a bit buggy but will be fixed.
2014-03-10 21:33:08 +08:00
Cheer Xiao
2820389fa4 edit: sigch -> sigs 2014-03-10 21:25:00 +08:00
Cheer Xiao
0624368bcc Use util.AsyncReader to build a new async edit.Reader
Now we can start really dealing with signals!
2014-03-10 21:22:54 +08:00
Cheer Xiao
1e4cd9dea0 edit: Make 0 a special rune for invalid key 2014-03-10 19:07:47 +08:00
Cheer Xiao
877cbe58d1 edit: Key.rune -> .Rune 2014-03-10 19:06:22 +08:00
Cheer Xiao
64dd483c73 edit: Factor out {Setup Cleanup}Terminal 2014-03-10 18:52:39 +08:00
Cheer Xiao
b2f4e8f781 edit: ReadLine now accepts funcs as prompt and rprompt.
The prompt is now correctly updated when cding in navigation mode
2014-03-10 14:51:37 +08:00
Cheer Xiao
afaa18377e edit: Implement and bind move-dot-{up down} 2014-03-10 13:47:19 +08:00
Cheer Xiao
6b7e1296c1 Add util.Find{FirstEOL LastSOL}; use it 2014-03-10 00:31:22 +08:00
Cheer Xiao
8460fa8b4c edit: Fix killLineRight 2014-03-10 00:28:43 +08:00
Cheer Xiao
c9686c85be edit: Export most funcs in wcwidth.go 2014-03-10 00:17:29 +08:00
Cheer Xiao
bbca89f4c9 Support Shift-Tab 2014-03-10 00:12:12 +08:00
Cheer Xiao
20924b0c31 edit: Don't use Capital in error msg 2014-03-10 00:07:29 +08:00
Cheer Xiao
2a4887007b edit: Fix (*BadEscSeq).Error 2014-03-10 00:01:51 +08:00
Cheer Xiao
0e8756ce16 edit: Ditch -b or -f in builtin names
One of up/down, left/right or prev/next is used depending on the context.
2014-03-09 23:59:49 +08:00
Cheer Xiao
d017c35dd9 edit: Ditch reader.unreadBuffer 2014-03-09 16:21:00 +08:00
Cheer Xiao
1e788f8161 edit: Fix command mode line 2014-03-09 00:57:49 +08:00
Cheer Xiao
075c399591 edit: Only do a full refresh when w.oldBuf.cells != nil
This is quite dirty...
2014-03-09 00:56:17 +08:00
Cheer Xiao
3fd932c5bc edit: Implement and bind builtin kill-rune-f 2014-03-09 00:53:07 +08:00
Cheer Xiao
331ea9cb09 edit: Implement editor builtins kill-line-{b f} really in terms of lines 2014-03-09 00:49:30 +08:00