# -*- mode: org -*- #+PROPERTY: COOKIE_DATA todo recursive * Useful resources - Lua5.1 - [[http://www.lua.org/manual/5.1/manual.html#8][bnf syntax]] - [[http://www.lua.org/manual/5.1/index.html#index][function index]] - Lua5.2 - [[http://www.lua.org/manual/5.2/manual.html#9][syntax]] - [[http://www.lua.org/manual/5.2/#index][function index]] * TODO Fontify function parameters as variable names * TODO Fontify variable names in line-continuation statements - local foo,bar,baz = xyz,xyyz,xyyz - function xyzzy( foo, bar, baz ) * TODO left-shift parenthesis that closes function parameter block local foobar = function( param1, param2, param3 ) dosmth() end * TODO issue #33 a = { } b = { } * TODO finish works in lua-compat branch for Emacs21/Emacs22 * TODO put text property 'lua-last-stmt-begin - continuation-line detection becomes a one-liner - multiline fontification becomes easier - beginning-of-defun is a one-liner - if property value is a marker, it will get updated on each edit, that's not necessary and might cause performance impact - if property value is an integer, it needs to be updated before use 1. `buffer-access-fontify-functions' / `buffer-access-fontified-property' 2. maintain `stmt-begin-up-to-date-pos' point - after-change function sets `stmt-begin-up-to-date-pos' to (line-beginning-position) - (defun get-stmt-beginning-pos (pos) ...) - (when (< stmt-begin-up-to-date-pos pos) ... (setq stmt-begin-up-to-date-pos pos)) - return property at position pos * TODO Support line-continuation statements [0/2] - [ ] assignments x,y = long_value, other_long_value - [ ] `for ... do' operators * TODO update site [0/2] ** TODO reuse section-aware template ** TODO add section for release downloading * TODO [#C] Improve lua-prefix-key machinery [0/2] - [ ] add docs - [ ] improve setting prefix-key Currently, prefix-key is parsed from a macro string (which may contain more than one key) and all keys but the first one are silently removed. Maybe there's a better way to do it. * DONE Fix braces/parens that reduce indent by const offset this causes wrong behavior when indented block was anchored to first line, e.g. my_func( hello, world ) * DONE lua-mark-all-multiline-literals [5/5] - [X] process --[[ as multiline comment - [X] process ---[[ as single-line comment distinguish by syntax state of last dash before square bracket - [X] don't recognize [[ in comments or literals - [X] extend region backwards if BEGIN is inside multiline literal - [X] don't change buffer-modified-p state * TODO [#C] Redo syntax engine using semantic/wisent