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 |
|