Rewrite notes
This commit is contained in:
parent
4dd09a6e63
commit
526f569b8e
81
notes
81
notes
@ -1,56 +1,43 @@
|
|||||||
notes
|
notes
|
||||||
-----
|
-----
|
||||||
|
|
||||||
- test rendered recipe lines
|
- test evaluated recipe lines
|
||||||
|
|
||||||
|
- properly handle state stack at EOF
|
||||||
|
|
||||||
- implement string parsing
|
- implement string parsing
|
||||||
. use the same rules as rust: https://doc.rust-lang.org/reference.html#string-literals
|
. use the same rules as rust: https://doc.rust-lang.org/reference.html#string-literals
|
||||||
. \xHH, \u{HHHHHH}, \n, \r, \t, \0, \\, \{ no other escapes
|
. \xHH, \u{HHHHHH}, \n, \r, \t, \0, \\, \{ no other escapes
|
||||||
. '' strings with no escapes
|
. '' strings with no escapes
|
||||||
|
|
||||||
- assignment
|
- integration testing
|
||||||
. make quine use assignment and interpolation
|
. run app with command line options and test output
|
||||||
- do proper handling of the state stack at EOF
|
. exercise all features and all command line options
|
||||||
- disallow unused arguments and variables
|
. test that first recipe runs by default
|
||||||
- allow exporting environment variables
|
|
||||||
- write some tests to test the binary itself and all command line flags
|
- underline problem token in error messages
|
||||||
- test that run runs first recipe by default
|
|
||||||
- parse arguments on command line:
|
- add context to unexpected_token error
|
||||||
. ugly but conservative: j build --set a=hello
|
"while parsing a recipe"
|
||||||
. by export: A=HELLO j build
|
"while parsing an expression"
|
||||||
. by export 2: BUILD.A=HELLO j build
|
|
||||||
. by name: j build a=hello
|
- figure out argument passing:
|
||||||
. by position: j build hello
|
. flag: j build --set a=hello
|
||||||
. with marker: j build hello : clean hello :
|
. by export: A=HELLO j build
|
||||||
. after -- : j build -- foo baz
|
. by export 2: BUILD.A=HELLO j build
|
||||||
|
. by name: j build a=hello
|
||||||
|
. by position: j build hello
|
||||||
|
. with marker: j build hello : clean hello :
|
||||||
|
. after -- : j build -- foo baz
|
||||||
. fast errors when arguments are missing
|
. fast errors when arguments are missing
|
||||||
. could also allow this to override variables
|
. could also allow this to override variables
|
||||||
although maybe only after a '--': j build -- a=hello
|
although maybe only after a '--': j build -- a=hello
|
||||||
. sub arguments into recipes
|
. sub arguments into recipes
|
||||||
- change error messages to underline problem token
|
|
||||||
- allow calling recipes in a justfile in a different directory:
|
- before release:
|
||||||
- just ../foo # ../justfile:foo
|
|
||||||
- just xyz/foo # xyz/justfile:foo
|
|
||||||
- just xyz/ # xyz/justfile:DEFAULT
|
|
||||||
- this is going to be hard. should a single recipe with a slash
|
|
||||||
require that all recipes have slashes?
|
|
||||||
or should non-slash recipes still run in this directory?
|
|
||||||
will need to change things a great deal
|
|
||||||
- indentation is line continuation
|
|
||||||
- should i disallow a shebang recipe where the shebang isn't on the first line?
|
|
||||||
- add insane borrow checker issue to issue tracker
|
|
||||||
- add context to unexpected_token error
|
|
||||||
"while parsing a recipe"
|
|
||||||
"while parsing an expression"
|
|
||||||
- add post requirements:
|
|
||||||
# do c then a then b
|
|
||||||
a: c b~
|
|
||||||
|
|
||||||
- rewrite grammar.txt
|
- rewrite grammar.txt
|
||||||
- change name back to 'just'
|
- change name back to 'just', suggest j as alias
|
||||||
. suggest j as alias
|
|
||||||
- create some kind of group feedback forum:
|
|
||||||
. email list, reddit
|
|
||||||
- change description to "a polyglot command runner"?
|
- change description to "a polyglot command runner"?
|
||||||
- update readme
|
- update readme
|
||||||
- document all code, including private stuff
|
- document all code, including private stuff
|
||||||
@ -74,14 +61,22 @@ notes
|
|||||||
. lay out the structure of the code, mention tests, give tips
|
. lay out the structure of the code, mention tests, give tips
|
||||||
for contributing
|
for contributing
|
||||||
- vim and emacs syntax hilighting (use makefile syntax hilighting for now)
|
- vim and emacs syntax hilighting (use makefile syntax hilighting for now)
|
||||||
- split up code into modules for easier reading
|
|
||||||
. parsing
|
|
||||||
. tokenizing
|
|
||||||
. executing
|
|
||||||
- make sure there isn't any unused code
|
- make sure there isn't any unused code
|
||||||
- ask users to contribute their justfiles
|
- ask users to contribute their justfiles
|
||||||
|
|
||||||
- try to get some users
|
- try to get some users
|
||||||
. facebook friends
|
. facebook friends
|
||||||
. irc
|
. irc
|
||||||
. r/rust
|
. r/rust
|
||||||
|
|
||||||
|
enhancements:
|
||||||
|
|
||||||
|
- add post requirements:
|
||||||
|
# do c then a then b
|
||||||
|
a: c b~
|
||||||
|
- allow calling recipes in a justfile in a different directory:
|
||||||
|
. just ../foo # ../justfile:foo
|
||||||
|
. just xyz/foo # xyz/justfile:foo
|
||||||
|
. just xyz/ # xyz/justfile:DEFAULT
|
||||||
|
. get all directories, if more than one, fork just for each
|
||||||
|
- allow setting and exporting environment variables
|
||||||
|
- indentation or slash for line continuation
|
||||||
|
Loading…
Reference in New Issue
Block a user