D13498: Rust: Add keywords & bytes, fix identifiers, and other improvements/fixes

2018-06-12 Thread Dominik Haumann
This revision was automatically updated to reflect the committed changes.
Closed by commit R216:601f93780573: Rust: Add keywords  bytes, fix 
identifiers, and other improvements/fixes (authored by nibags, committed by 
dhaumann).

REPOSITORY
  R216 Syntax Highlighting

CHANGES SINCE LAST UPDATE
  https://phabricator.kde.org/D13498?vs=36063=36072

REVISION DETAIL
  https://phabricator.kde.org/D13498

AFFECTED FILES
  autotests/folding/test.rs.fold
  autotests/html/test.rs.html
  autotests/input/test.rs
  autotests/reference/test.rs.ref
  data/syntax/rust.xml

To: nibags, dhaumann, cullmann
Cc: kde-frameworks-devel, michaelh, genethomas, ngraham, bruns, cullmann, 
vkrause, dhaumann


D13498: Rust: Add keywords & bytes, fix identifiers, and other improvements/fixes

2018-06-12 Thread Dominik Haumann
dhaumann accepted this revision.
dhaumann added a comment.
This revision is now accepted and ready to land.


  Nice update, will integrate. And thanks for the unit test!

REPOSITORY
  R216 Syntax Highlighting

BRANCH
  improve-rust (branched from master)

REVISION DETAIL
  https://phabricator.kde.org/D13498

To: nibags, dhaumann, cullmann
Cc: kde-frameworks-devel, michaelh, genethomas, ngraham, bruns, cullmann, 
vkrause, dhaumann


D13498: Rust: Add keywords & bytes, fix identifiers, and other improvements/fixes

2018-06-12 Thread Nibaldo González
nibags edited the summary of this revision.

REPOSITORY
  R216 Syntax Highlighting

REVISION DETAIL
  https://phabricator.kde.org/D13498

To: nibags, dhaumann, cullmann
Cc: kde-frameworks-devel, michaelh, genethomas, ngraham, bruns, cullmann, 
vkrause, dhaumann


D13498: Rust: Add keywords & bytes, fix identifiers, and other improvements/fixes

2018-06-12 Thread Nibaldo González
nibags edited the summary of this revision.

REPOSITORY
  R216 Syntax Highlighting

REVISION DETAIL
  https://phabricator.kde.org/D13498

To: nibags, dhaumann, cullmann
Cc: kde-frameworks-devel, michaelh, genethomas, ngraham, bruns, cullmann, 
vkrause, dhaumann


D13498: Rust: Add keywords & bytes, fix identifiers, and other improvements/fixes

2018-06-12 Thread Nibaldo González
nibags edited the summary of this revision.
nibags added reviewers: dhaumann, cullmann.
nibags added a project: Framework: Syntax Highlighting.

REPOSITORY
  R216 Syntax Highlighting

REVISION DETAIL
  https://phabricator.kde.org/D13498

To: nibags, dhaumann, cullmann
Cc: kde-frameworks-devel, michaelh, genethomas, ngraham, bruns, cullmann, 
vkrause, dhaumann


D13498: Rust: Add keywords & bytes, fix identifiers, and other improvements/fixes

2018-06-12 Thread Nibaldo González
nibags created this revision.
Restricted Application added a project: Frameworks.
Restricted Application added a subscriber: kde-frameworks-devel.
nibags requested review of this revision.

REVISION SUMMARY
  **Changes:**
  
  - Add missing keywords.
  - Remove obsolete types `int` & `uint` (these were depreciated by 
isize/usize): 
https://github.com/nox/rust-rfcs/blob/master/text/0544-rename-int-uint.md
  - Remove type `float`, because it isn't a valid data type: 
https://doc.rust-lang.org/std/index.html#primitives
  - Fix identifiers (entity `rustIdent`, marked with FIXME). The Rust 
identifier highlighting also detects Non-ASCII characters (in the Rust parser, 
an identifier is: `[a-zA-Z\x80-\xff_][a-zA-Z0-9\x80-\xff_]*`).
  
  **NOTE:** The POSIX character class `[[::ascii::]]` is used. I don't know 
from which version of KTextEditor (or Qt) the use of POSIX character class is 
available, or if the use of this is a correct way. It works well, but if it 
isn't the correct way to do it, I can change it without any problem.
  
  - Improved and fixes in the highlighting of numbers:
- Add missing integer suffixes (`i128`, `u128`, `isize`, `usize`).
- Add word border (`\b`) in numbers (Hex, Octal, Binary, Float, Decimal).
- Improves float detection; floats with suffix 'f' are not allowed (only 
'f32' & 'f64').
- Highlight as 'Error' invalid numbers (Hexadecimal, Octal, Binary).
  - Fix Raw Hashed Strings (`r##"text"##`). Before, only a maximum of 2 hashes 
are detected (this is mentioned in a comment). Now any number of #'s are 
allowed.
  - Add byte characters & byte strings (`b'X'`, `b"XX"`, `br"XX"`, `br#"XX"#`).
  - Improves character detection and escape characters:
- Highlight as 'Error' invalid characters.
- Fixes unicode escapes: only the `\u{NN}` type is allowed (Not 
`\u` or `\U`).
  
  **NOTES:**
  
  - Binaries don't allow unicode escapes, so a difference is made between 
common and unicode escapes. The RegExpr rules used to detect escape characters 
are placed in the entities ``; and ``.
  - Escapes supported in: 
https://doc.rust-lang.org/std/primitive.char.html#method.escape_default
  
  - The style of the itemData 'Scope' is changed from 'dsNormal' to 
'dsProcessador', since the detection of identifiers was corrected.
  
  I also added a test file. Any inconvenience or if I need to correct 
something, do not hesitate to notify!
  
  Sources:
  
  - Rust documentation: https://doc.rust-lang.org/
  - Rust Playground: https://play.rust-lang.org/
  - Rust in Vim: 
https://github.com/rust-lang/rust.vim/blob/master/syntax/rust.vim
  - Rust in VSCode: 
https://github.com/Microsoft/vscode/blob/master/extensions/rust/syntaxes/rust.tmLanguage.json
  - Rust in gedit: 
https://github.com/GNOME/gtksourceview/blob/master/data/language-specs/rust.lang
  - Rust in ACE: 
https://github.com/ajaxorg/ace/blob/master/lib/ace/mode/rust_highlight_rules.js
  - https://github.com/rust-lang/kate-config

TEST PLAN
  I checked the modifications with the documentation and the compiler of Rust 
to avoid regressions.

REPOSITORY
  R216 Syntax Highlighting

BRANCH
  improve-rust (branched from master)

REVISION DETAIL
  https://phabricator.kde.org/D13498

AFFECTED FILES
  autotests/folding/test.rs.fold
  autotests/html/test.rs.html
  autotests/input/test.rs
  autotests/reference/test.rs.ref
  data/syntax/rust.xml

To: nibags
Cc: kde-frameworks-devel, michaelh, ngraham, bruns