branch: externals/phps-mode commit d2e5a03b3a929411504bc1d0ff4440b8dc9f2630 Author: Christian Johansson <christ...@cvj.se> Commit: Christian Johansson <christ...@cvj.se>
Updated indentation algorithm document and README --- README.md | 14 ++++++++++---- docs/indentation-algorithm.md | 6 ++++++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index e9aed59..3e75bb8 100644 --- a/README.md +++ b/README.md @@ -7,17 +7,19 @@ An Emacs major mode for PHP scripting language which aims at making a full seman *With current progress estimates:* * Flycheck support (100%) -* Lexer based on official PHP re2c lexer (100%) * Syntax coloring based on lexer tokens (100%) -* PSR based indentation based on lexer tokens (90%) +* PSR based indentation based on lexer tokens (100%) +* Lexer based on official PHP re2c lexer (90%) * Incremental lexer and syntax coloring after buffer changes (75%) -* Wisent LALR parser based on official PHP yacc parser automatically converted (60%) +* Wisent LALR parser based on official PHP yacc parser automatically converted (50%) * Full integration with Emacs Semantic subsystem (30%) +* Imenu support (0%) * Flymake support (0%) * PSR-2 auto-formatting tool based on lexer tokens (0%) * Travis support (0%) * Add to MELPA (0%) * Add to ELPA (0%) +* Use master branch for stable releases and develop for unstable (0%) ## Unit tests @@ -27,6 +29,8 @@ If you have emacs at a customized location prefix the commands with your path, i ### Lexer +Token generation + ``` bash make test-lexer ``` @@ -41,13 +45,15 @@ make test-parser ### Functions +Indentations, imenu, semantic subsystem + ``` bash make test-functions ``` ### Integration tests -Not working yet +Not ready yet ``` bash make test-integration diff --git a/docs/indentation-algorithm.md b/docs/indentation-algorithm.md index 4913064..c6fd0be 100644 --- a/docs/indentation-algorithm.md +++ b/docs/indentation-algorithm.md @@ -45,6 +45,12 @@ foreach token in buffer: if we reached end of a line: + if this-token or last token is a dot: + concatentation-level = 1; + else: + concatentation-level = 0; + endif; + indent-start = indent; if new-token-line-start is more than one line after last-token-line-start AND token is not T_CLOSE_TAG: