summaryrefslogtreecommitdiff
path: root/cli/lsp/language_server.rs
diff options
context:
space:
mode:
authorSatya Rohith <me@satyarohith.com>2021-05-18 12:05:46 +0530
committerGitHub <noreply@github.com>2021-05-18 16:35:46 +1000
commitd69a5fbe1a4f909b7eba0eac81dd111fb7229232 (patch)
treedfa2e3a6e10f2dbc85447d4a0ef1dce727208ab9 /cli/lsp/language_server.rs
parent8ffeabc678dc33932ba71273fa2dc9d787274880 (diff)
feat(lsp): support formatting json and markdown files (#10180)
Resolves #9447 Resolves #9415
Diffstat (limited to 'cli/lsp/language_server.rs')
-rw-r--r--cli/lsp/language_server.rs30
1 files changed, 16 insertions, 14 deletions
diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs
index 9f5a7c84a..fcf28dbf7 100644
--- a/cli/lsp/language_server.rs
+++ b/cli/lsp/language_server.rs
@@ -10,7 +10,6 @@ use deno_core::serde_json;
use deno_core::serde_json::json;
use deno_core::serde_json::Value;
use deno_core::ModuleSpecifier;
-use dprint_plugin_typescript as dprint;
use log::error;
use log::info;
use log::warn;
@@ -30,13 +29,6 @@ use std::sync::atomic::Ordering;
use std::sync::Arc;
use tokio::fs;
-use crate::config_file::ConfigFile;
-use crate::config_file::TsConfig;
-use crate::deno_dir;
-use crate::import_map::ImportMap;
-use crate::logger;
-use crate::media_type::MediaType;
-
use super::analysis;
use super::analysis::ts_changes_to_edit;
use super::analysis::CodeActionCollection;
@@ -62,6 +54,15 @@ use super::tsc::AssetDocument;
use super::tsc::Assets;
use super::tsc::TsServer;
use super::urls;
+use crate::config_file::ConfigFile;
+use crate::config_file::TsConfig;
+use crate::deno_dir;
+use crate::import_map::ImportMap;
+use crate::logger;
+use crate::lsp::diagnostics::is_diagnosable;
+use crate::media_type::MediaType;
+use crate::tools::fmt::format_file;
+use crate::tools::fmt::get_typescript_config;
pub const REGISTRIES_PATH: &str = "registries";
const SOURCES_PATH: &str = "deps";
@@ -785,6 +786,11 @@ impl Inner {
if !self.config.specifier_enabled(&specifier) {
return Ok(None);
}
+ let media_type = MediaType::from(&specifier);
+ if !is_diagnosable(media_type) {
+ return Ok(None);
+ }
+
let mark = self.performance.mark("document_symbol", Some(&params));
let line_index =
@@ -845,12 +851,8 @@ impl Inner {
// TODO(lucacasonato): handle error properly
let text_edits = tokio::task::spawn_blocking(move || {
- let config = dprint::configuration::ConfigurationBuilder::new()
- .deno()
- .build();
- // TODO(@kitsonk) this could be handled better in `cli/tools/fmt.rs` in the
- // future.
- match dprint::format_text(&file_path, &file_text, &config) {
+ let config = get_typescript_config();
+ match format_file(&file_path, &file_text, config) {
Ok(new_text) => {
Some(text::get_edits(&file_text, &new_text, line_index))
}