summaryrefslogtreecommitdiff
path: root/cli/tools/repl
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2023-10-24 09:37:02 -0400
committerGitHub <noreply@github.com>2023-10-24 09:37:02 -0400
commit8f065a60e79e221a6ce7f6ce06c3022a85edb56a (patch)
treee1be8f4d384b5dd4f73940b86fd60cc58f43aef1 /cli/tools/repl
parent9df36b33c6aa250daa200167eb0e1b9d6d738da1 (diff)
fix: improved using declaration support (#20959)
Upgrades to deno_ast 0.30.
Diffstat (limited to 'cli/tools/repl')
-rw-r--r--cli/tools/repl/editor.rs53
-rw-r--r--cli/tools/repl/session.rs3
2 files changed, 30 insertions, 26 deletions
diff --git a/cli/tools/repl/editor.rs b/cli/tools/repl/editor.rs
index 5c2832aab..52fad4759 100644
--- a/cli/tools/repl/editor.rs
+++ b/cli/tools/repl/editor.rs
@@ -374,32 +374,35 @@ impl Highlighter for EditorHelper {
}
Word::Keyword(_) => colors::cyan(&line[range]).to_string(),
Word::Ident(ident) => {
- if ident == *"undefined" {
- colors::gray(&line[range]).to_string()
- } else if ident == *"Infinity" || ident == *"NaN" {
- colors::yellow(&line[range]).to_string()
- } else if ident == *"async" || ident == *"of" {
- colors::cyan(&line[range]).to_string()
- } else {
- let next = lexed_items.peek().map(|item| &item.inner);
- if matches!(
- next,
- Some(deno_ast::TokenOrComment::Token(Token::LParen))
- ) {
- // We're looking for something that looks like a function
- // We use a simple heuristic: 'ident' followed by 'LParen'
- colors::intense_blue(&line[range]).to_string()
- } else if ident == *"from"
- && matches!(
+ match ident.as_ref() {
+ "undefined" => colors::gray(&line[range]).to_string(),
+ "Infinity" | "NaN" => {
+ colors::yellow(&line[range]).to_string()
+ }
+ "async" | "of" => colors::cyan(&line[range]).to_string(),
+ _ => {
+ let next = lexed_items.peek().map(|item| &item.inner);
+ if matches!(
next,
- Some(deno_ast::TokenOrComment::Token(Token::Str { .. }))
- )
- {
- // When ident 'from' is followed by a string literal, highlight it
- // E.g. "export * from 'something'" or "import a from 'something'"
- colors::cyan(&line[range]).to_string()
- } else {
- line[range].to_string()
+ Some(deno_ast::TokenOrComment::Token(Token::LParen))
+ ) {
+ // We're looking for something that looks like a function
+ // We use a simple heuristic: 'ident' followed by 'LParen'
+ colors::intense_blue(&line[range]).to_string()
+ } else if ident.as_ref() == "from"
+ && matches!(
+ next,
+ Some(deno_ast::TokenOrComment::Token(
+ Token::Str { .. }
+ ))
+ )
+ {
+ // When ident 'from' is followed by a string literal, highlight it
+ // E.g. "export * from 'something'" or "import a from 'something'"
+ colors::cyan(&line[range]).to_string()
+ } else {
+ line[range].to_string()
+ }
}
}
}
diff --git a/cli/tools/repl/session.rs b/cli/tools/repl/session.rs
index 338a253d2..8f8d085dd 100644
--- a/cli/tools/repl/session.rs
+++ b/cli/tools/repl/session.rs
@@ -32,6 +32,7 @@ use deno_core::serde_json;
use deno_core::serde_json::Value;
use deno_core::unsync::spawn;
use deno_core::LocalInspectorSession;
+use deno_graph::source::ResolutionMode;
use deno_graph::source::Resolver;
use deno_runtime::worker::MainWorker;
use deno_semver::npm::NpmPackageReqReference;
@@ -572,7 +573,7 @@ impl ReplSession {
.flat_map(|i| {
self
.resolver
- .resolve(i, &self.referrer)
+ .resolve(i, &self.referrer, ResolutionMode::Execution)
.ok()
.or_else(|| ModuleSpecifier::parse(i).ok())
})