diff options
author | Yiyu Lin <linyiyu1992@gmail.com> | 2023-04-13 09:08:01 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-13 03:08:01 +0200 |
commit | d790ea7d533c3c48b09a2f16f3fef549aa96be78 (patch) | |
tree | b31fc35baf1f634054f52e94626f0399d187b99b /cli/lsp | |
parent | 19c3e4f6dc31fd78e2793d0596d6a9cc3a30580a (diff) |
refactor(cli,ext,ops): cleanup `regex` with `lazy-regex` (#17296)
- bump deps: the newest `lazy-regex` need newer `oncecell` and
`regex`
- reduce `unwrap`
- remove dep `lazy_static`
- make more regex cached
---------
Co-authored-by: Bartek IwaĆczuk <biwanczuk@gmail.com>
Diffstat (limited to 'cli/lsp')
-rw-r--r-- | cli/lsp/analysis.rs | 2 | ||||
-rw-r--r-- | cli/lsp/code_lens.rs | 7 | ||||
-rw-r--r-- | cli/lsp/completions.rs | 2 | ||||
-rw-r--r-- | cli/lsp/path_to_regex.rs | 2 | ||||
-rw-r--r-- | cli/lsp/registries.rs | 5 | ||||
-rw-r--r-- | cli/lsp/tsc.rs | 31 |
6 files changed, 21 insertions, 28 deletions
diff --git a/cli/lsp/analysis.rs b/cli/lsp/analysis.rs index 23bfeccd1..a5ebbbbb8 100644 --- a/cli/lsp/analysis.rs +++ b/cli/lsp/analysis.rs @@ -53,7 +53,7 @@ static PREFERRED_FIXES: Lazy<HashMap<&'static str, (u32, bool)>> = }); static IMPORT_SPECIFIER_RE: Lazy<Regex> = - Lazy::new(|| Regex::new(r#"\sfrom\s+["']([^"']*)["']"#).unwrap()); + lazy_regex::lazy_regex!(r#"\sfrom\s+["']([^"']*)["']"#); const SUPPORTED_EXTENSIONS: &[&str] = &[".ts", ".tsx", ".js", ".jsx", ".mjs"]; diff --git a/cli/lsp/code_lens.rs b/cli/lsp/code_lens.rs index 650e5e241..6327b7a9c 100644 --- a/cli/lsp/code_lens.rs +++ b/cli/lsp/code_lens.rs @@ -21,6 +21,7 @@ use deno_core::serde::Serialize; use deno_core::serde_json; use deno_core::serde_json::json; use deno_core::ModuleSpecifier; +use lazy_regex::lazy_regex; use once_cell::sync::Lazy; use regex::Regex; use std::cell::RefCell; @@ -29,11 +30,9 @@ use std::rc::Rc; use std::sync::Arc; use tower_lsp::lsp_types as lsp; -static ABSTRACT_MODIFIER: Lazy<Regex> = - Lazy::new(|| Regex::new(r"\babstract\b").unwrap()); +static ABSTRACT_MODIFIER: Lazy<Regex> = lazy_regex!(r"\babstract\b"); -static EXPORT_MODIFIER: Lazy<Regex> = - Lazy::new(|| Regex::new(r"\bexport\b").unwrap()); +static EXPORT_MODIFIER: Lazy<Regex> = lazy_regex!(r"\bexport\b"); #[derive(Debug, Deserialize, Serialize)] pub enum CodeLensSource { diff --git a/cli/lsp/completions.rs b/cli/lsp/completions.rs index c40d6f238..d91fc29c2 100644 --- a/cli/lsp/completions.rs +++ b/cli/lsp/completions.rs @@ -28,7 +28,7 @@ use std::sync::Arc; use tower_lsp::lsp_types as lsp; static FILE_PROTO_RE: Lazy<Regex> = - Lazy::new(|| Regex::new(r#"^file:/{2}(?:/[A-Za-z]:)?"#).unwrap()); + lazy_regex::lazy_regex!(r#"^file:/{2}(?:/[A-Za-z]:)?"#); const CURRENT_PATH: &str = "."; const PARENT_PATH: &str = ".."; diff --git a/cli/lsp/path_to_regex.rs b/cli/lsp/path_to_regex.rs index dcad6b039..01dbc0287 100644 --- a/cli/lsp/path_to_regex.rs +++ b/cli/lsp/path_to_regex.rs @@ -37,7 +37,7 @@ use std::fmt::Write as _; use std::iter::Peekable; static ESCAPE_STRING_RE: Lazy<Regex> = - Lazy::new(|| Regex::new(r"([.+*?=^!:${}()\[\]|/\\])").unwrap()); + lazy_regex::lazy_regex!(r"([.+*?=^!:${}()\[\]|/\\])"); #[derive(Debug, PartialEq, Eq)] enum TokenType { diff --git a/cli/lsp/registries.rs b/cli/lsp/registries.rs index d5bdd22ca..f46aba44f 100644 --- a/cli/lsp/registries.rs +++ b/cli/lsp/registries.rs @@ -33,7 +33,6 @@ use deno_runtime::deno_web::BlobStore; use deno_runtime::permissions::PermissionsContainer; use log::error; use once_cell::sync::Lazy; -use regex::Regex; use std::collections::HashMap; use std::path::Path; use tower_lsp::lsp_types as lsp; @@ -66,8 +65,8 @@ const COMPONENT: &percent_encoding::AsciiSet = &percent_encoding::CONTROLS const REGISTRY_IMPORT_COMMIT_CHARS: &[&str] = &["\"", "'", "/"]; -static REPLACEMENT_VARIABLE_RE: Lazy<Regex> = - Lazy::new(|| Regex::new(r"\$\{\{?(\w+)\}?\}").unwrap()); +static REPLACEMENT_VARIABLE_RE: Lazy<regex::Regex> = + lazy_regex::lazy_regex!(r"\$\{\{?(\w+)\}?\}"); fn base_url(url: &Url) -> String { url.origin().ascii_serialization() diff --git a/cli/lsp/tsc.rs b/cli/lsp/tsc.rs index e236eee0a..eba3c5b3e 100644 --- a/cli/lsp/tsc.rs +++ b/cli/lsp/tsc.rs @@ -44,6 +44,7 @@ use deno_core::ModuleSpecifier; use deno_core::OpState; use deno_core::RuntimeOptions; use deno_runtime::tokio_util::create_basic_runtime; +use lazy_regex::lazy_regex; use once_cell::sync::Lazy; use regex::Captures; use regex::Regex; @@ -65,24 +66,18 @@ use tower_lsp::jsonrpc::Result as LspResult; use tower_lsp::lsp_types as lsp; static BRACKET_ACCESSOR_RE: Lazy<Regex> = - Lazy::new(|| Regex::new(r#"^\[['"](.+)[\['"]\]$"#).unwrap()); -static CAPTION_RE: Lazy<Regex> = Lazy::new(|| { - Regex::new(r"<caption>(.*?)</caption>\s*\r?\n((?:\s|\S)*)").unwrap() -}); -static CODEBLOCK_RE: Lazy<Regex> = - Lazy::new(|| Regex::new(r"^\s*[~`]{3}").unwrap()); -static EMAIL_MATCH_RE: Lazy<Regex> = - Lazy::new(|| Regex::new(r"(.+)\s<([-.\w]+@[-.\w]+)>").unwrap()); -static HTTP_RE: Lazy<Regex> = - Lazy::new(|| Regex::new(r#"(?i)^https?:"#).unwrap()); -static JSDOC_LINKS_RE: Lazy<Regex> = Lazy::new(|| { - Regex::new(r"(?i)\{@(link|linkplain|linkcode) (https?://[^ |}]+?)(?:[| ]([^{}\n]+?))?\}").unwrap() -}); -static PART_KIND_MODIFIER_RE: Lazy<Regex> = - Lazy::new(|| Regex::new(r",|\s+").unwrap()); -static PART_RE: Lazy<Regex> = - Lazy::new(|| Regex::new(r"^(\S+)\s*-?\s*").unwrap()); -static SCOPE_RE: Lazy<Regex> = Lazy::new(|| Regex::new(r"scope_(\d)").unwrap()); + lazy_regex!(r#"^\[['"](.+)[\['"]\]$"#); +static CAPTION_RE: Lazy<Regex> = + lazy_regex!(r"<caption>(.*?)</caption>\s*\r?\n((?:\s|\S)*)"); +static CODEBLOCK_RE: Lazy<Regex> = lazy_regex!(r"^\s*[~`]{3}"); +static EMAIL_MATCH_RE: Lazy<Regex> = lazy_regex!(r"(.+)\s<([-.\w]+@[-.\w]+)>"); +static HTTP_RE: Lazy<Regex> = lazy_regex!(r#"(?i)^https?:"#); +static JSDOC_LINKS_RE: Lazy<Regex> = lazy_regex!( + r"(?i)\{@(link|linkplain|linkcode) (https?://[^ |}]+?)(?:[| ]([^{}\n]+?))?\}" +); +static PART_KIND_MODIFIER_RE: Lazy<Regex> = lazy_regex!(r",|\s+"); +static PART_RE: Lazy<Regex> = lazy_regex!(r"^(\S+)\s*-?\s*"); +static SCOPE_RE: Lazy<Regex> = lazy_regex!(r"scope_(\d)"); const FILE_EXTENSION_KIND_MODIFIERS: &[&str] = &[".d.ts", ".ts", ".tsx", ".js", ".jsx", ".json"]; |