Commit Graph

202 Commits

Author SHA1 Message Date
Cheer Xiao
f5c4b6658e Don't allow navigation.selected off the border... 2014-03-06 10:13:51 +08:00
Cheer Xiao
5b8d305195 Provide wrappers for edit.navigation methods 2014-03-06 10:09:55 +08:00
Cheer Xiao
c4e73557ca navigation.refresh now maintains .selected properly 2014-03-06 10:07:25 +08:00
Cheer Xiao
bd382fe9fb Navigation mode now shows files ordered by name 2014-03-06 09:59:57 +08:00
Cheer Xiao
712cf9ae73 Implement file listing of navigation mode 2014-03-06 01:09:57 +08:00
Cheer Xiao
1c4e67b0af edit: Builtin renames; check for nonexistent builtin in init() 2014-03-05 12:00:35 +08:00
Cheer Xiao
0197342914 Add stubs for navigation mode of editor 2014-03-05 11:25:32 +08:00
Cheer Xiao
de84052973 modeCompleting -> modeCompletion 2014-03-05 11:22:09 +08:00
Cheer Xiao
4be72a848a Handle signals by ignoring them (for now) 2014-03-03 17:53:23 +08:00
Cheer Xiao
42fcb8eb22 goimports 2014-02-10 11:33:53 +08:00
Cheer Xiao
933567c1fe Fix history lookup based on empty input 2014-02-09 19:59:06 +08:00
Cheer Xiao
548fcc41a3 edit: Preliminary history facility 2014-02-09 19:54:32 +08:00
Cheer Xiao
032fbeef97 gofmt 2014-02-08 22:36:05 +08:00
Cheer Xiao
4a8ebbbd15 Use fmt.Fprintf on bytes.Buffer, not Sprintf 2014-02-08 22:34:45 +08:00
Cheer Xiao
4faac4f180 edit: Use CSI G, not CSI {C D} for economy and compatibility 2014-02-08 22:33:26 +08:00
Cheer Xiao
4a42fe7a07 edit: Add stubs for history facility 2014-02-08 22:28:19 +08:00
Cheer Xiao
57b9848b81 gofmt 2014-02-08 21:27:56 +08:00
Cheer Xiao
9b4713e727 Make edit.Editor instance persistent 2014-02-08 21:21:01 +08:00
Cheer Xiao
db7eba2140 Improve XXX comments
Most are turned into `BUG(xiaq):`; the rest into `XXX(xiaq):`
2014-02-08 19:23:23 +08:00
Cheer Xiao
d033efbf80 Use parse to find completion context 2014-02-07 22:46:27 +08:00
Cheer Xiao
8534f86912 Fix edit/highlight.go doc 2014-02-04 19:24:50 +08:00
Cheer Xiao
095363eb58 Make edit.bufferMode values private 2014-01-31 20:01:07 +08:00
Cheer Xiao
7d7814ef9b golint fixes 2014-01-31 19:18:10 +08:00
Cheer Xiao
364969d7e8 Update package docs 2014-01-30 22:17:38 +08:00
Cheer Xiao
72bafcae3d I always forget to gofmt... 2014-01-29 21:17:04 +08:00
Cheer Xiao
c1711bbd0a Project rename: das -> elvish 2014-01-29 18:44:07 +08:00
Cheer Xiao
31d13dcc25 Use a real wcwidth implementation 2014-01-28 15:29:22 +08:00
Cheer Xiao
dd634c91e7 Add edit/wcwidth_test.go 2014-01-28 15:06:45 +08:00
Cheer Xiao
67b5621e86 gofmt 2014-01-27 18:55:45 +08:00
Cheer Xiao
713f87fc9a Ditch relative imports, make this go get-able 2014-01-25 19:10:30 +08:00
Cheer Xiao
29363b8186 gofmt 2014-01-16 09:24:14 +08:00
Cheer Xiao
69ff33b593 Implement editor builtins select-cand-col-{b f} 2014-01-10 14:20:01 +08:00
Cheer Xiao
484d91e56f Stricter criteria for setting bufLine.indent 2014-01-10 13:00:27 +08:00
Cheer Xiao
89e2e5cbd8 Finer grained soft line break; place rprompt at the very right corner 2014-01-10 12:59:21 +08:00
Cheer Xiao
a5ce39a974 Implement trimming of editor buffer
Using das in a window with few lines and scrolling of long completion lists
are now supported.
2014-01-10 12:52:59 +08:00
Cheer Xiao
69c2b676ae Make mode and tip line always one-line 2014-01-09 23:51:35 +08:00
Cheer Xiao
63fb9aa379 Don't add soft line break when line is exactly full 2014-01-09 23:44:30 +08:00
Cheer Xiao
b4fb4c0641 Add edit.buffer.writePadding 2014-01-09 20:23:54 +08:00
Cheer Xiao
e35d0a7b8a Don't place "\n" in edit.buffer.cells 2014-01-09 20:18:58 +08:00
Cheer Xiao
7916042fd0 Assemble editor buffer from components 2014-01-09 20:16:27 +08:00
Cheer Xiao
b88dfc5018 Move buffer fields and funcs from edit.editor to edit.buffer 2014-01-09 17:32:32 +08:00
Cheer Xiao
5207975ed7 Update comments 2014-01-08 16:26:03 +08:00
Cheer Xiao
b3c82051cd editorState.tip string -> tips []string 2014-01-08 16:14:18 +08:00
Cheer Xiao
065350aab3 edit.bufferState -> editorState 2014-01-08 16:11:38 +08:00
Cheer Xiao
446fbf0c32 Get rid of writer.currentAttr, specify it on every write() call 2014-01-08 16:11:12 +08:00
Cheer Xiao
4204b1b5fe Avoid a division-by-zero 2014-01-05 00:40:39 +08:00
Cheer Xiao
c79abaabc7 Handing ^D better 2014-01-04 22:53:20 +08:00
Cheer Xiao
6c5ab5ced6 Implement rprompt 2014-01-04 22:45:35 +08:00
Cheer Xiao
e0c78f08c4 Move logics in edit.completion widget to edit.startCompletion 2014-01-03 20:52:15 +08:00
Cheer Xiao
4f7ab50b4e When there are no completions, set mode to ModeInsert 2014-01-03 20:48:08 +08:00
Cheer Xiao
9f3dc5fdf9 Implement very basic command mode keybindings 2014-01-03 19:26:07 +08:00
Cheer Xiao
cb4a7bb28b Implement all editor bindings as functions 2014-01-03 18:11:53 +08:00
Cheer Xiao
1371ba123e Introduce editorAction so that all keybindings can be implemented as func 2014-01-03 14:58:14 +08:00
Cheer Xiao
ad9531d4b4 Keep and record editor mode 2014-01-03 14:47:24 +08:00
Cheer Xiao
bdf1891e3f Remove a superfluous semicolon; 2014-01-03 14:21:54 +08:00
Cheer Xiao
104cc89ee6 Pack arguments to writer.refresh into a struct 2014-01-03 14:21:25 +08:00
Cheer Xiao
d5ce9fe2e4 Add edit.writer.writes 2013-12-31 11:31:59 +08:00
Cheer Xiao
995900dadc Multi-column layout for completion menu 2013-12-31 11:31:54 +08:00
Cheer Xiao
25cb428e0f Let Editor.refresh re-lex the text. 2013-12-30 16:28:57 +08:00
Cheer Xiao
c9f80cc70a Fix completion preview after spaces; clearer logic of completion preview 2013-12-30 16:18:24 +08:00
Cheer Xiao
f486d4a83b Better reaction to unsupported/failed completion 2013-12-27 10:07:01 +08:00
Cheer Xiao
d88f5f517b Tab cycles candidates; don't enter completion when the there are no candidates 2013-12-27 10:00:36 +08:00
Cheer Xiao
3c707c48eb Completion-related editor builtins renames 2013-12-27 09:55:07 +08:00
Cheer Xiao
c22964c74c Select the first candidate after Tab. 2013-12-27 09:51:08 +08:00
Cheer Xiao
b78e85b248 Warn when filename generation fails 2013-12-27 09:48:36 +08:00
Cheer Xiao
cfb501f194 Seperate filename generation and matching 2013-12-27 09:47:43 +08:00
Cheer Xiao
6c2ef48063 Implement completion preview 2013-12-27 09:37:50 +08:00
Cheer Xiao
5e3d69c6ce findCompletion -> startCompletion; store slicing index of original text 2013-12-27 09:19:35 +08:00
Cheer Xiao
3569dcaea9 Correct comment. 2013-12-27 09:13:56 +08:00
Cheer Xiao
d9f327e9d5 Implement completion accpetance. 2013-12-26 22:45:55 +08:00
Cheer Xiao
3d000e03d7 Enhance completion struct 2013-12-26 22:39:49 +08:00
Cheer Xiao
10224ade5b Move lexing from writer to editor 2013-12-26 20:39:59 +08:00
Cheer Xiao
c10d710cc6 Update comments 2013-12-26 20:30:31 +08:00
Cheer Xiao
38a52cf3c8 Actually generate candidates by matching filename 2013-12-26 20:24:13 +08:00
Cheer Xiao
4c3196d4f0 Dedicated struct for completion candidate; more stub 2013-12-26 20:16:17 +08:00
Cheer Xiao
3421b2f785 Dedicated keybinding map for completion mode 2013-12-25 19:38:06 +08:00
Cheer Xiao
09c790deaa Move completion struct to dedicated file 2013-12-25 17:02:36 +08:00
Cheer Xiao
fa7d8f5d18 Put tab completition state into dedicated struct 2013-12-25 16:43:52 +08:00
Cheer Xiao
b4931ba0d5 Before exiting editor, remove tip and completions 2013-12-25 16:34:19 +08:00
Cheer Xiao
ecd4edf6fb Unify lackeol of shell itself (on exit) and external 2013-12-25 16:33:53 +08:00
Cheer Xiao
3c78cd9bde Bind ^[ to new cancel-completion 2013-12-25 14:39:26 +08:00
Cheer Xiao
6932fd9e32 Stub tab-completion 2013-12-24 19:01:01 +08:00
Cheer Xiao
3513bf970f Stripe the le- prefix of editor builtin implementations 2013-12-24 17:28:05 +08:00
Cheer Xiao
ab4c73454d eval.ioType -> .IOType
Consequently eval.Evaluator.ResolveCommand now fully exposes ..resolveCommand.
2013-11-21 00:30:29 +08:00
Cheer Xiao
f8d005cb29 Let eval.Evaluator.{r R}esolveCommand return a CommandHead 2013-11-21 00:26:50 +08:00
Cheer Xiao
43a865de8d Highlight [in]valid command names and variable names
A dedicated edit.Highlighter is implemented.
2013-11-19 20:28:45 +08:00
Cheer Xiao
7fec88d910 Style dollar sign 2013-11-19 19:35:03 +08:00
Cheer Xiao
c1b2be7cd1 Use util.{Panic Recover} in edit/reader.go 2013-11-17 00:36:24 +08:00
Cheer Xiao
b717399e03 At editor startup, find cursor position and insert artificial carriage return if not on first column. 2013-11-16 14:28:07 +08:00
Cheer Xiao
8b930198bf edit/tty/tty.go: add function FlushInput 2013-11-15 19:02:28 +08:00
Cheer Xiao
3e637918b1 edit/tty/winsize.go -> .../types.go 2013-11-15 19:01:46 +08:00
Cheer Xiao
bd3611e28f Implement an infinite unread buffer in edit.reader 2013-11-15 18:24:09 +08:00
Cheer Xiao
6a77d0902a Lex ampersand (&). 2013-10-28 10:38:25 +08:00
Cheer Xiao
6042e8f3ee edit/writer: When switching attr, clear attr first. 2013-10-28 10:37:36 +08:00
Cheer Xiao
5d9aeab9f7 Highlight []{} too. 2013-10-28 10:12:56 +08:00
Cheer Xiao
e1c96c6cfc Separate "util" package. 2013-10-18 09:46:06 +08:00
Cheer Xiao
117850e80e edit: Fix CSI parsing, a bit cleanup & commenting 2013-10-07 13:57:45 +08:00
Cheer Xiao
728ccb9689 edit: Check key is not function key before adding it to current line 2013-10-07 13:56:38 +08:00
Cheer Xiao
105a47b7cc edit: More detailed BadEscSeq 2013-10-07 13:48:15 +08:00
Cheer Xiao
917c19cdd5 edit: Don't attempt key binding when readKey returns an error 2013-10-07 13:28:27 +08:00