Qi Xiao
ef61fcf234
Add elvish-stub.
2016-02-21 00:28:15 +01:00
Qi Xiao
56fae84255
Capitalize elvish in docstring of main.go.
2016-02-20 22:51:55 +01:00
Qi Xiao
f001c783d5
Lock EnvPathList correctly. This fixes #146 .
...
Although there are no explicit writes to $paths in the test cases, there is
one hidden write: when the first search on external commands is done. Since
the internal cache of EnvPathList starts empty, EnvPathList.get() notices that
it needs to fetch the environment to update itself. However, the update first
modifies .cachedValue and then .cachedPaths. If another goroutine uses .get()
in the middle, it would think that the cache is actually up to date and uses
the outdated .cachedPaths, which is empty.
EnvPathList.get() is now correctly guarded by a write lock. The offending test
case has been uncommented as well.
2016-02-20 22:25:26 +01:00
Qi Xiao
bb1e5954f2
eval: Make OS X's mktemp happy.
2016-02-20 22:11:34 +01:00
Qi Xiao
08eff35cab
eval: Add tests; comment out a failing test.
2016-02-20 22:05:20 +01:00
Qi Xiao
38874f6348
eval: Remove commented tests.
2016-02-20 21:47:30 +01:00
Qi Xiao
4d060c3ea7
eval: Add tests.
2016-02-20 21:43:25 +01:00
Qi Xiao
4b05661c44
eval: Add builtin lt and gt.
2016-02-20 21:20:18 +01:00
Qi Xiao
6ee16abba0
Remove GenericError.
2016-02-20 21:12:54 +01:00
Qi Xiao
385fccfcda
eval: Reorder tests.
2016-02-20 21:10:56 +01:00
Qi Xiao
3d32200799
parse: Save one LOC.
2016-02-20 17:12:17 +01:00
Qi Xiao
5dee621830
parse: Run gofmt after generating boilerplate.
2016-02-20 17:10:44 +01:00
Qi Xiao
a1a495cc09
parse: Fix go:generate line.
2016-02-20 17:10:31 +01:00
Qi Xiao
09b77f6127
parse: Remove unused funcs; test Quote.
2016-02-20 17:05:28 +01:00
Qi Xiao
5a1fbf814b
Remove an used func.
2016-02-20 16:54:24 +01:00
Qi Xiao
4cca805a1c
parse: Add test cases.
2016-02-20 16:52:24 +01:00
Qi Xiao
3cc9f757b1
Merge pull request #149 from Zirak/master
...
edit: Fix crash in history listing mode
2016-02-20 16:30:19 +01:00
Qi Xiao
2dba0c4b53
parse: Test parsing of control structures.
2016-02-20 15:34:31 +01:00
Qi Xiao
618d927605
parse: Check all fields of AST.
2016-02-20 15:17:34 +01:00
Qi Xiao
935bfd24e7
parse: Move checkAST into a seprate file, add doc.
2016-02-20 14:44:44 +01:00
Zirak
bf64621b7e
edit: Fix crash in history listing mode
...
When you had too few history entries to display in the terminal,
entering history listing mode attempted to access a negative index and
crashed.
2016-02-20 12:31:47 +00:00
Qi Xiao
f407db7283
eval: Use location information in {,Values}Op.
...
This also fixes a NullPointerException.
2016-02-20 12:25:51 +01:00
Qi Xiao
91fc4a3419
each
now takes any CallerValue.
2016-02-20 03:44:08 +01:00
Qi Xiao
83b214e31c
edit: When doing a refresh, erase just once in the beginning.
...
Previously if you bind `le:binding[insert][Ctrl-L] = { put * }`, there is a
small defect that is readily observed by pressing Ctrl-L repeatedly:
the prompt will never go to the bottom of terminal, but always kept one line
higher than the bottom.
This is because invoking a closure from the editor causes a full refresh,
which in turn causes an erase to be done near the end of writer.refresh,
which, in the old algorithm, always adds a superfluous newline.
By doing the erase at the very beginning, we avoid the superfluous newline.
Now pressing Ctrl-L repeatedly will push the prompt to the bottom.
2016-02-20 03:05:03 +01:00
Qi Xiao
6f21bc690f
Go back to mattn/go-sqlite3.
2016-02-20 03:04:44 +01:00
Qi Xiao
5c03407a8a
Wait for store jobs to finish when exiting.
...
This fixes #144 #147 .
2016-02-20 02:32:12 +01:00
Qi Xiao
098965cfac
Also close the database.
...
Doesn't help with #147 though.
2016-02-20 02:27:26 +01:00
Qi Xiao
3c75e71a8b
Use a fork of mxk/go-sqlite.
2016-02-20 01:47:40 +01:00
Qi Xiao
8cb35dfafc
Fix a NullPointerException.
2016-02-20 01:37:38 +01:00
Qi Xiao
8900e57707
Switch to mxk/go-sqlite for the SQLite3 backend.
...
This one has the advantage of supporting SQLite3-specific operations.
2016-02-20 01:22:22 +01:00
Qi Xiao
169b9917e3
Refine evaler's error reporting.
2016-02-20 00:48:13 +01:00
Qi Xiao
2b1b57f0aa
Refine compiler's error reporting.
2016-02-19 21:16:23 +01:00
Qi Xiao
b2dbfaee39
Sort variables in completion.
2016-02-19 20:54:40 +01:00
Qi Xiao
7502b61b3e
Don't style variables in completion menu.
2016-02-19 20:51:08 +01:00
Qi Xiao
d6a126946c
Fix an error message.
2016-02-19 20:49:48 +01:00
Qi Xiao
2e08ae0975
Implement setting of variables in other modules correctly.
...
This fixes #141 .
2016-02-19 20:39:22 +01:00
Qi Xiao
2cdbf67147
Slightly simplify Repr.
2016-02-19 20:31:54 +01:00
Qi Xiao
2413edcc09
Implement pretty printing.
...
This fixes #112 .
2016-02-19 20:11:31 +01:00
Qi Xiao
07b0fc647c
Split Value.Kind to Kinder
2016-02-19 18:59:32 +01:00
Qi Xiao
7efeb9c56f
Remove ContextualError.
2016-02-19 17:46:21 +01:00
Qi Xiao
be3b938bcf
The compiler no longer takes name and source.
2016-02-19 17:33:55 +01:00
Qi Xiao
9a2c30dd3e
edit: Don't show tips when about to exit ReadLine.
2016-02-19 17:26:44 +01:00
Qi Xiao
f2b9276b35
eval: Split compile.go.
2016-02-19 17:21:51 +01:00
Qi Xiao
4b60877083
Write directory history in another goroutine.
2016-02-19 15:36:14 +01:00
Qi Xiao
5f3f438193
Guard access to EnvPathList with a RWMutex.
2016-02-19 14:26:14 +01:00
Qi Xiao
17ae71b36c
Change the syntax of pairs to use = to separate key and value.
...
This resolves #136 .
2016-02-19 13:58:49 +01:00
Qi Xiao
65a0ab4e83
eval: Introduce a MapLike interface.
2016-02-19 12:21:55 +01:00
Qi Xiao
50af039e16
Introduce a ListLike interface, let *EnvPathList implement it.
...
All embedded Value's have been removed from the interfaces in edit/value.go.
2016-02-19 12:19:19 +01:00
Qi Xiao
3d7e5a819f
Introduce an Elemser interface.
2016-02-19 12:07:38 +01:00
Qi Xiao
83cbe3b230
Introduce a Lener interface.
2016-02-19 11:49:19 +01:00