From 1ab78d60561ed701b29d3065061cbc3175e20c4a Mon Sep 17 00:00:00 2001 From: Edwin Cheng Date: Fri, 5 Apr 2019 18:23:01 +0800 Subject: Fix literal support in token tree to ast item list --- crates/ra_syntax/src/lib.rs | 2 +- crates/ra_syntax/src/parsing.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'crates/ra_syntax') diff --git a/crates/ra_syntax/src/lib.rs b/crates/ra_syntax/src/lib.rs index e1088e296..1cbc3e9e1 100644 --- a/crates/ra_syntax/src/lib.rs +++ b/crates/ra_syntax/src/lib.rs @@ -40,7 +40,7 @@ pub use crate::{ syntax_text::SyntaxText, syntax_node::{Direction, SyntaxNode, WalkEvent, TreeArc, SyntaxTreeBuilder, SyntaxElement, SyntaxToken}, ptr::{SyntaxNodePtr, AstPtr}, - parsing::{tokenize, Token}, + parsing::{tokenize, next_token, Token}, }; use ra_text_edit::AtomTextEdit; diff --git a/crates/ra_syntax/src/parsing.rs b/crates/ra_syntax/src/parsing.rs index ad5668a65..f0750d737 100644 --- a/crates/ra_syntax/src/parsing.rs +++ b/crates/ra_syntax/src/parsing.rs @@ -11,7 +11,7 @@ use crate::{ syntax_node::GreenNode, }; -pub use self::lexer::{tokenize, Token}; +pub use self::lexer::{tokenize, next_token, Token}; pub(crate) use self::reparsing::incremental_reparse; -- cgit v1.2.3 From 1ea0238e538dc332b23698d54c02d8bd037f58bb Mon Sep 17 00:00:00 2001 From: Edwin Cheng Date: Fri, 5 Apr 2019 18:45:19 +0800 Subject: Add classify_literal and undo expose next_token --- crates/ra_syntax/src/lib.rs | 2 +- crates/ra_syntax/src/parsing.rs | 2 +- crates/ra_syntax/src/parsing/lexer.rs | 9 +++++++++ 3 files changed, 11 insertions(+), 2 deletions(-) (limited to 'crates/ra_syntax') diff --git a/crates/ra_syntax/src/lib.rs b/crates/ra_syntax/src/lib.rs index 1cbc3e9e1..c56bc9f16 100644 --- a/crates/ra_syntax/src/lib.rs +++ b/crates/ra_syntax/src/lib.rs @@ -40,7 +40,7 @@ pub use crate::{ syntax_text::SyntaxText, syntax_node::{Direction, SyntaxNode, WalkEvent, TreeArc, SyntaxTreeBuilder, SyntaxElement, SyntaxToken}, ptr::{SyntaxNodePtr, AstPtr}, - parsing::{tokenize, next_token, Token}, + parsing::{tokenize, classify_literal, Token}, }; use ra_text_edit::AtomTextEdit; diff --git a/crates/ra_syntax/src/parsing.rs b/crates/ra_syntax/src/parsing.rs index f0750d737..15d69c5ab 100644 --- a/crates/ra_syntax/src/parsing.rs +++ b/crates/ra_syntax/src/parsing.rs @@ -11,7 +11,7 @@ use crate::{ syntax_node::GreenNode, }; -pub use self::lexer::{tokenize, next_token, Token}; +pub use self::lexer::{tokenize, classify_literal, Token}; pub(crate) use self::reparsing::incremental_reparse; diff --git a/crates/ra_syntax/src/parsing/lexer.rs b/crates/ra_syntax/src/parsing/lexer.rs index 36e841609..e75f3aae0 100644 --- a/crates/ra_syntax/src/parsing/lexer.rs +++ b/crates/ra_syntax/src/parsing/lexer.rs @@ -214,3 +214,12 @@ fn scan_literal_suffix(ptr: &mut Ptr) { } ptr.bump_while(is_ident_continue); } + +pub fn classify_literal(text: &str) -> Option { + let tkn = next_token(text); + if tkn.kind.is_literal() || tkn.len.to_usize() != text.len() { + return None; + } + + Some(tkn) +} -- cgit v1.2.3 From 7abc06bd576264cb6b7c8becdbd1a8c0e914463d Mon Sep 17 00:00:00 2001 From: Edwin Cheng Date: Fri, 5 Apr 2019 20:58:24 +0800 Subject: Add proper test for literals and fixed typo bug --- crates/ra_syntax/src/parsing/lexer.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'crates/ra_syntax') diff --git a/crates/ra_syntax/src/parsing/lexer.rs b/crates/ra_syntax/src/parsing/lexer.rs index e75f3aae0..3ae42912c 100644 --- a/crates/ra_syntax/src/parsing/lexer.rs +++ b/crates/ra_syntax/src/parsing/lexer.rs @@ -217,7 +217,7 @@ fn scan_literal_suffix(ptr: &mut Ptr) { pub fn classify_literal(text: &str) -> Option { let tkn = next_token(text); - if tkn.kind.is_literal() || tkn.len.to_usize() != text.len() { + if !tkn.kind.is_literal() || tkn.len.to_usize() != text.len() { return None; } -- cgit v1.2.3