cjohansson pushed a change to branch externals/phps-mode. from 3734d56372 More testing with generating AST new d3b5a85b70 Using property list as basis for AST new 2afb7dc87a Generating basic imenu-index via parser SDT new 35c9b0fd1c Imenu generated correctly for one case new 16c15c9ef4 Added type check to imenu-index generation new a80c12ef14 Passing imenu-generation for file with multiple namespaces new 4753734b0a Moved syntax coloring to separate file new 0071b40aae Syntax coloring is now in separate file new a65c8af308 Extract ast code into separate file and test new a0d2abc2ee More working on imenu generation via parser SDT new 41b1566c40 Imenu generation via parser SDT passing more tests new 8115521ef8 Imenu-generation via parser SDT passing more tests new 968f7b067c Moved all imenu tests to AST tests new 8f9870fb9b Parser SDT does not use global variables new 8652f7162e Started on bookkeeping generation via parser SDT new b3b27951bd More work on bookkeeping new 1cc4aed616 Passing first bookkeeping test via generation via parser SDT new 52b5692d91 Passed second test for bookkeeping via parser SDT new 442ad93cb2 Fix for function parameter formatting in AST new 2a4d5dea37 Passed bookkeeping of function arguments new 26b8d5cc97 Added bookkeeping support for super-globals new c29e35fea2 More work on bookkeeping new 3d54b6ff01 Passed another test for bookkeeping generated via parser SDT new d037aa09bc Added bookkeeping via parser SDT foreach ($x as $y) {} new c7e308a13f Added SDT foreach($x as $key => $value) new 0daaa97f8d SDT for for() loop started new a907f103f0 More work on AST for bookkeeping new fa3681141b Passed test for bookkeeping of conditional assignment via parser SDT new d44e79ad03 More work on grammar SDT new 95078e0db2 Added SDT for increment variable production new fc4c763d68 Added SDT for class properties new 040b2564b0 Some work on AST bookkeeping new f7c261cee1 Generate parser command now compatible with latest emacs-parser-generator new f82c9a377d Re-generated parser to verify automation functionality, improved automation documentation new f858060096 More work on bookkeeping generated from parser SDT new d90b470109 Fixed bookkeeping of class property new 395a4ed045 Started on bookkeeping via parser SDT for properties new 23c001c33f Moved parser SDT to separate file new bcf0c68945 AST-imenu and AST-bookkeeping now in standalone files new 69341c9709 More working on bookkeeping of class properties via parser SDT new a1af5b11fb More work on bookkeeping of class properties via AST new bb381d8127 Bookkeeping of class properties via AST passed test new e95df1027b Reverted old tests for imenu and bookkeeping for lex-analyzer new 1dc3b453c9 Passed bookkeeping via AST for try catch blocks new df0b707a61 Added parser SDT for inline-function new 787d82313e Bookkeeping via AST now tracks variables around inline-functions new 4e021b8413 Bookkeeping via AST now passing method calls new 5603e6266b SDT for array values new 4d226f18cc Bookkeeping via AST working with referenced foreach variables new 712f5e9f2b Removed invalid syntax code from old bookkeeping test new 4dc07c9041 Bookkeeping via AST working with assigned variables from array new 432382eddb Added bookkeeping support for global variables in functions new e8a47de694 Work on supported arrow functions for bookkeeping via AST new a629baba89 More work on bookkeeping via AST for arrow function variables new cefab36fa8 More work on bookkeeping arrow function variables new a8fecdfd68 Bookkeeping of variables inside arrow functions now working new 261121f096 Fixed incorrect information in debug output in test new 9ad46d061e Bookkeeping via AST passing two more tests new e42646dc3a Added SDT for isset() and empty() new e3bf9e8fed SDT rules for some more infix operations new c83b1c264e Fixed SDT for isset_variables new d802a669c0 Bookkeeping via AST working with isset() and !empty() scoped variables new 882e6f75dc Work on SDT for interface methods new 8fa61fa1f2 Passing bookkeeping of interface method arguments new e66abd00e5 Bookkeeping via AST passing nested isset() !empty() expressions new 2bc31a0f83 Added TODO items new a9d0e941df Started on SDT for static variables statement new f4d2164f8b Bookkeeping via parser SDT passing static variables in function new d9cbe630b3 Passing bookkeeping of variables inside echo statements new d9115ec583 Cleaned up AST bookkeeping tests new 5df554fc47 Bookkeeping via AST properly handles $this reference in only non-static methods new 491c82a2a1 Added TODO item for bookkeeping via AST new 8b5ce22d87 Fixed issue with SDT for return statement new 0919855a31 Added SDT for concat operation new 5686703a6b Passing bookkeeping via AST for $this inside arrow function body inside class method new 30e9fa14ff Added a failing bookkeeping test new 5ec32f5f5a Bookkeeping via AST passing all tests new 16ce2acfb7 Removed debug output for bookkeeping new 7a636ccd28 Removed obsolete file parser-grammar-macro.el new 5b1f5b4774 Improved format of SDT new 228f212127 Starting on removing the old process tokens in string function new 3f3a8bb0fa Major refactor of indent tests new 481deb6331 More work on indentation new f69df4fdf6 Moved indentation to separate file and test new ee211dac6a Started on indentation tests new daff4ad5e0 More work on indentation new bc5039e32f Created custom determine string indentation function new f79b6118a4 Optimization of string indentation function new b469f0ffbb Passing indentation for multi-line class implements new b94ee63396 More work on indentation new b82475c697 Passed token-blind indentation for multi-line class extends and implements new 2ea2360c3e Created indent helper functions new f65ca852cd Passed another indent test new c9f715a1fd Improved comments new 9a2573939a More wrestling new f0ab7a2cdb Passed tests for inline control structures new 2432928a86 Indentation passing more tests for alternative control structures new fe9cb90c44 Passing indent test for some multi-line assignments new 7c0cb57312 Added more multi-line assignment indent tests new 3853ddf32a Passed another concatenation test for indentation new 3a594466d5 Passed indent test for multi-line assignments new 7deebc5f79 Improved indent test descriptions new 6fac0d5585 Passed indent test for heredoc string new cef879268b Added two new tests for failing indentation for multi-line concatenated strings new d5d80017bc Passed indent tests for concatenated string new 6655248e86 Passing indent test for regular switch statement new d8503c70bb Passing indent tests for switch case new 08f57c1d36 Added TODO item for indent new e083e90ac0 Passing more indentation tests for PSR-2 new 4f20de353e Passed indent tests for PSR-2 new ff62626f48 Passing indent test for square bracket array new 1ed09d42f5 Passing another indent test new 4e5be4f8f8 More indentation work for mixed PHP/HTML content new d205d8392f Passed another indent test new 3de8eff9f1 More wrestling with indentation new 4b4a821e6e Started refactor of indent code new 40ce934c11 Indent support for string-doc in assignment new df91b8e433 More handling of string-doc indentation new b4bf3caeb3 Added TODO note new 84d447e4e6 Added TODO item new b9956e278f Indent support for closing bracket after closing multi-line assignment new a3b9559880 Improved indent support for nested switch case new 806bb902b3 Improved indentation for chaining objects new cc3bf03786 Improved indentation after ending assignment expression new dc361309e0 Passing all indentation tests new 3565c7efb3 Fixed byte-compilation warnings for indent file new 5f09905a1a Fixed issue with bookkeeping and imenu not being stored new 1af63142f3 Fixed incremental issue with new SDT based bookkeeping new ffda8f1b5c Added TODO item new 50d006852c Fixed issue with indent being dependent on position of point on current line new 1a62f48783 Improved indentation in cases with multi-expressions last line does not start with closing bracket new 1ab6ac7324 Added failing tests for indentation new 20ad1fae08 Improved indentation arround multi-line object operators new a62e6be40e Fixed indentation on line after print_r new a530988fe0 Added more failing indent tests new fbe600500f More work on array and argument element indentation new d072fe5315 Improved indentation around array elements new 7ec071188a Added more indent unit tests for nested function calls new c65d433a73 Improved indentation around multi-line function-calls new c453932f32 Added TODO item new 837412c0e5 Improved indentation on lines starting with a closing bracket new 29fee20e43 Passed all tests for indentation new c2a7af2a98 Updated copyright years new 5391551287 Added a new indent test and made it pass new 26d7b64086 Added TODO item for indentation new 8c1f529f87 Passing indent for line after ending of statement / expression with trailing closing bracket new d7aa22d251 Added two new failing tests for indentation new a8097b5b5e Improved indentation on line after equal operator in if condition list new 28a5302e08 Passing indentation on line after closing bracket and command and were current line starts with closing bracket new 0e7eb04800 Passing indentation test for multiple function arguments with default values new 519888fe79 Added another failing indent test new 1825ee499b More wrestling with indentation new 6cb18913e4 Improved indentation for lines ending with closing bracket and comma new 2e16122284 Improved indentation on line after closing bracket and comma new cdbcd5ebe6 Added a new failing indent test and made it pass new 2ef1168cb1 Added new failing indentation tests new db7121941c Passing indention on line after not equals condition new e7aff3f69d Passed more indentation tests new 91fb5402cd Added another failing indentation and made it pass new 3162dca5c4 Added two more failing indentation tests new dece7f242e Added more failing indentation tests new 6a49784b8b When indentation search previous code lines it skips commented out lines new 5432a61340 Improved indentation around closing of multi-dimensional brackets new 1e44021653 Added more failing indent tests new f880ba2d62 Improved indentation on lines after assignment that ends with closing bracket new be61c94dc3 Added TODO item new 8374026917 Improved indentation on lines starting with a closing square bracket new 0ca0e447b8 Improved indentation on lines starting with a closing bracket new f537965850 Improved indentation on lines after lines that ends with semicolon new 66d4352052 Added more failing indent tests new db019887af Passed new indentation tests new 6d8544d7fa Added two more failing tests for indentation new 616e3dc7ea Added a TODO file new 7135a30446 Updated TODO items new a2c61b9e7c Started refactoring of indentation functions new 63c5fef240 Started on tests for more basic functions of indentation new 735f1e0c89 More notes new 18221a85f0 Added failing parse test for multiple swith case conditions new 22c4f31716 Added TODO items new e15d602e46 More TODO items new d74686e07c Started on optimizing lexer new 73d460d5a4 Passing lexer tests with optimized lexer new c05d97fc31 Disabled debug-mode in this branch new 06b35e4bf1 Fixed TODO item in this branch new ef97058a67 Added more tests for indentation helper functions new 2dc9280bcd More work new d095e757e6 Added failing imenu test new e5df43eea9 More tweaking of indentation helpers new 413547fbf1 Searching for previous bracket now steps over optional PHP starting tags new 40ecf58372 Adjustments for indent helper function determining last index line new 87974abfcc Improved indentation after lines containing => symbol new edba476df8 Byte compilation fixes for indentation new fe83e986c7 Fixed issue with optimized lexer after byte-compilation new e049853a6f Remove use of lex-analyzer from semantic and instead use custom new 781356557c More adjustments to indent helper to find previous command new 3e79319cf5 Added failing indent test new d85974c2aa Improved indentation inside multi-dimensional arrays new 057aadd2f6 Improved indentation around multi-line logical expressions new d19bd439cf Updated TODO items new 198cfbd360 Added failing indentation tests new af263a5462 Improved indentation detection of start of alternative control structure new 580298c395 Improved indentation of multi-line concatenated strings containing brackets new 0e3889a122 Added indentation support for HTML/XML new 733f36a123 Added more failing indentation tests new cb4d95cd7a Passed new indentation tests new 502a42b5c0 Improved indentation around doc-comments new 5273bdf42f Started on cache feature new 55d59ee365 More work on cache support new 4b4a96fda2 Improved cache filename new 0735959c08 Using silent cache write new 72c692b511 Re-scan buffer interactively now clears cache and kills running threads new d4f0db2c0c Added failing bookkeeping test new 5ae4886f14 Updated docs and version
Summary of changes: Makefile | 14 +- README.md | 9 +- TODO.md | 31 + admin/phps-mode-automation.el | 34 +- phps-mode-ast-bookkeeping.el | 1005 +++++++++ phps-mode-ast-imenu.el | 92 + phps-mode-ast.el | 101 + phps-mode-automation-grammar.el | 19 +- phps-mode-automation-parser-generator.el | 71 +- phps-mode-cache.el | 83 + phps-mode-flymake.el | 17 +- phps-mode-indent.el | 1690 +++++++++++++++ phps-mode-lex-analyzer.el | 3277 ++++-------------------------- phps-mode-lexer.el | 2930 +++++++++++++------------- phps-mode-macros.el | 2 +- phps-mode-parser-grammar-macro.el | 102 - phps-mode-parser-sdt.el | 1141 +++++++++++ phps-mode-parser.el | 83 +- phps-mode-serial.el | 2 +- phps-mode-syntax-color.el | 24 + phps-mode-syntax-table.el | 2 +- phps-mode-test.el | 26 +- phps-mode.el | 93 +- test/phps-mode-test-ast.el | 440 ++++ test/phps-mode-test-cache.el | 50 + test/phps-mode-test-indent.el | 989 +++++++++ test/phps-mode-test-integration.el | 17 +- test/phps-mode-test-lex-analyzer.el | 1549 +------------- test/phps-mode-test-lexer.el | 17 +- test/phps-mode-test-parser.el | 225 +- test/phps-mode-test-syntax-table.el | 17 +- 31 files changed, 7751 insertions(+), 6401 deletions(-) create mode 100644 TODO.md create mode 100644 phps-mode-ast-bookkeeping.el create mode 100644 phps-mode-ast-imenu.el create mode 100644 phps-mode-ast.el create mode 100644 phps-mode-cache.el create mode 100644 phps-mode-indent.el delete mode 100644 phps-mode-parser-grammar-macro.el create mode 100644 phps-mode-parser-sdt.el create mode 100644 phps-mode-syntax-color.el create mode 100644 test/phps-mode-test-ast.el create mode 100644 test/phps-mode-test-cache.el create mode 100644 test/phps-mode-test-indent.el