dd824ef364
Saves the value in each expression fragment when that fragment is evaluated so that we can print the value in Display. This allows us to check fragment values in tests.
81 lines
2.6 KiB
Plaintext
81 lines
2.6 KiB
Plaintext
notes
|
|
-----
|
|
|
|
- properly handle state stack at EOF
|
|
|
|
- implement string parsing
|
|
. 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
|
|
. '' strings with no escapes
|
|
|
|
- integration testing
|
|
. run app with command line options and test output
|
|
. exercise all features and all command line options
|
|
. test that first recipe runs by default
|
|
|
|
- underline problem token in error messages
|
|
|
|
- add context to unexpected_token error
|
|
"while parsing a recipe"
|
|
"while parsing an expression"
|
|
|
|
- figure out argument passing:
|
|
. flag: j build --set a=hello
|
|
. by export: A=HELLO j build
|
|
. 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
|
|
. could also allow this to override variables
|
|
although maybe only after a '--': j build -- a=hello
|
|
. sub arguments into recipes
|
|
|
|
- before release:
|
|
|
|
- rewrite grammar.txt
|
|
- change name back to 'just', suggest j as alias
|
|
- change description to "a polyglot command runner"?
|
|
- update readme
|
|
- document all code, including private stuff
|
|
(can this be enforced with a lint?)
|
|
#![deny(missing_docs)]
|
|
- note that shell is invoked with -cu, explain -c and -u
|
|
- document all features with example justfiles
|
|
(also make them runnable as tests)
|
|
. update tarball dep
|
|
. check version string
|
|
. clean
|
|
. update logs (repetitive git flow)
|
|
- full documentation
|
|
. talk about why the syntax is so unforgiving
|
|
easier to accept a program that you once rejected than to
|
|
no longer accept a program or change its meaning
|
|
. habit of using clever commands and writing little scripts
|
|
. very low friction to write a script (no new file, chmod, add to rcs)
|
|
. make list of contributors, include travis
|
|
. alias .j='just --justfile ~/.justfile --working-directory ~'
|
|
. lay out the structure of the code, mention tests, give tips
|
|
for contributing
|
|
- vim and emacs syntax hilighting (use makefile syntax hilighting for now)
|
|
- make sure there isn't any unused code
|
|
- ask users to contribute their justfiles
|
|
- try to get some users
|
|
. facebook friends
|
|
. irc
|
|
. 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
|