Skip to content
This repository has been archived by the owner on Aug 31, 2023. It is now read-only.

Commit

Permalink
chore: 🤖 basic finish
Browse files Browse the repository at this point in the history
  • Loading branch information
IWANABETHATGUY committed May 5, 2023
1 parent 4b63252 commit 3b9a9b9
Show file tree
Hide file tree
Showing 9 changed files with 63 additions and 17 deletions.
1 change: 1 addition & 0 deletions crates/rome_cli/src/execute/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,7 @@ pub(crate) fn execute_mode(
cli_options: &CliOptions,
paths: Vec<OsString>,
) -> Result<(), CliDiagnostic> {
dbg!(&paths);
mode.max_diagnostics = if let Some(max_diagnostics) = cli_options.max_diagnostics {
if max_diagnostics > MAXIMUM_DISPLAYABLE_DIAGNOSTICS {
return Err(CliDiagnostic::overflown_argument(
Expand Down
3 changes: 3 additions & 0 deletions crates/rome_cli/src/execute/process_file.rs
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ pub(crate) type FileResult = Result<FileStatus, Message>;
pub(crate) fn process_file(ctx: &TraversalOptions, path: &Path) -> FileResult {
tracing::trace_span!("process_file", path = ?path).in_scope(move || {
let rome_path = RomePath::new(path);
dbg!(&rome_path);

let supported_format = ctx.can_format(&rome_path).with_file_path_and_code(
path.display().to_string(),
Expand Down Expand Up @@ -204,6 +205,7 @@ pub(crate) fn process_file(ctx: &TraversalOptions, path: &Path) -> FileResult {

// In formatting mode, abort immediately if the file has errors
errors = result.errors;
dbg!(&errors);
match ctx.execution.traversal_mode() {
TraversalMode::Format { ignore_errors, .. } if errors > 0 => {
return Err(if *ignore_errors {
Expand Down Expand Up @@ -284,6 +286,7 @@ pub(crate) fn process_file(ctx: &TraversalOptions, path: &Path) -> FileResult {
TraversalMode::Migrate { write: dry_run, .. } => *dry_run,
};

dbg!(&"process file");
let printed = file_guard
.format_file()
.with_file_path_and_code(path.display().to_string(), category!("format"))?;
Expand Down
1 change: 0 additions & 1 deletion crates/rome_cli/src/execute/traverse.rs
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@ pub(crate) fn traverse(
inputs: Vec<OsString>,
) -> Result<(), CliDiagnostic> {
init_thread_pool();

if inputs.is_empty() && execution.as_stdin_file().is_none() {
return Err(CliDiagnostic::missing_argument(
"<INPUT>",
Expand Down
5 changes: 3 additions & 2 deletions crates/rome_cli/tests/commands/format.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1625,19 +1625,20 @@ fn ignore_comments_error_when_allow_comments() {
"#;
let rome_config = "rome.json";
let code = r#"
[]
/*test*/ [1, 2, 3]
"#;
let file_path = Path::new("tsconfig.json");
fs.insert(file_path.into(), code.as_bytes());
fs.insert(rome_config.into(), config_json);

println!("something--------------------xxxxxxxxxxxxxxxxxx");
let result = run_cli(
DynRef::Borrowed(&mut fs),
&mut console,
Args::from(&[("format"), file_path.as_os_str().to_str().unwrap()]),
);

assert!(result.is_ok(), "run_cli returned {result:?}");
// assert!(result.is_ok(), "run_cli returned {result:?}");

assert_cli_snapshot(SnapshotPayload::new(
module_path!(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ expression: content

```json

[]
/*test*/ [1, 2, 3]

```

Expand All @@ -28,8 +28,9 @@ tsconfig.json format ━━━━━━━━━━━━━━━━━━━
i Formatter would have printed the following content:
1 │ -
2 1 │ []
2 │ - /*test*/·[1,·2,·3]
3 │ - →
1 │ + [1,·2,·3]
2 │ +
Expand Down
1 change: 1 addition & 0 deletions crates/rome_service/src/file_handlers/json.rs
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ fn parse(
settings: SettingsHandle,
) -> AnyParse {
let allow_comment_matcher = &settings.as_ref().languages.json.allow_comments;
dbg!(&allow_comment_matcher);
let parse = rome_json_parser::parse_json_with_cache(
text,
cache,
Expand Down
15 changes: 15 additions & 0 deletions crates/rome_service/src/settings.rs
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,21 @@ impl WorkspaceSettings {
if let Some(_organize_imports) = organize_imports {}
}

if let Some(json) = configuration.json {
let string_set = json.allow_comments.unwrap_or_default();
if let Some(matcher) = self.languages.json.allow_comments.as_mut() {
for item in string_set.index_set().iter() {
matcher.add_pattern(item);
}
} else {
let mut matcher = Matcher::new(MatchOptions::default());
for item in string_set.index_set().iter() {
matcher.add_pattern(item);
}
self.languages.json.allow_comments = Some(matcher);
}
}

Ok(())
}

Expand Down
1 change: 1 addition & 0 deletions crates/rome_service/src/workspace/client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,7 @@ where
}

fn format_file(&self, params: FormatFileParams) -> Result<Printed, WorkspaceError> {
dbg!(&"format_file");
self.request("rome/format_file", params)
}

Expand Down
48 changes: 36 additions & 12 deletions crates/rome_service/src/workspace/server.rs
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ impl WorkspaceServer {
&self,
rome_path: RomePath,
feature: Option<FeatureName>,
// settings: SettingsHandle,
settings: SettingsHandle,
) -> Result<AnyParse, WorkspaceError> {
let ignored = if let Some(feature) = feature {
self.is_path_ignored(IsPathIgnoredParams {
Expand Down Expand Up @@ -313,7 +313,7 @@ impl Workspace for WorkspaceServer {
.ok_or_else(self.build_capability_error(&params.path))?;

// The feature name here can be any feature, in theory
let parse = self.get_parse(params.path.clone(), None)?;
let parse = self.get_parse(params.path.clone(), None, self.settings())?;
let printed = debug_syntax_tree(&params.path, parse);

Ok(printed)
Expand All @@ -329,7 +329,7 @@ impl Workspace for WorkspaceServer {
.debug_control_flow
.ok_or_else(self.build_capability_error(&params.path))?;

let parse = self.get_parse(params.path.clone(), None)?;
let parse = self.get_parse(params.path.clone(), None, self.settings())?;
let printed = debug_control_flow(parse, params.cursor);

Ok(printed)
Expand All @@ -350,7 +350,11 @@ impl Workspace for WorkspaceServer {
.debug_formatter_ir
.ok_or_else(self.build_capability_error(&params.path))?;
let settings = self.settings();
let parse = self.get_parse(params.path.clone(), Some(FeatureName::Format))?;
let parse = self.get_parse(
params.path.clone(),
Some(FeatureName::Format),
self.settings(),
)?;

if !settings.as_ref().formatter().format_with_errors && parse.has_errors() {
return Err(WorkspaceError::format_with_errors_disabled());
Expand Down Expand Up @@ -395,7 +399,7 @@ impl Workspace for WorkspaceServer {
FeatureName::Lint
};

let parse = self.get_parse(params.path.clone(), Some(feature))?;
let parse = self.get_parse(params.path.clone(), Some(feature), self.settings())?;
let settings = self.settings.read().unwrap();

let (diagnostics, errors, skipped_diagnostics) = if let Some(lint) =
Expand Down Expand Up @@ -452,8 +456,12 @@ impl Workspace for WorkspaceServer {
.code_actions
.ok_or_else(self.build_capability_error(&params.path))?;

let parse = self.get_parse(params.path.clone(), Some(FeatureName::Lint))?;
let settings = self.settings.read().unwrap();
let parse = self.get_parse(
params.path.clone(),
Some(FeatureName::Lint),
self.settings(),
)?;
let rules = settings.linter().rules.as_ref();
Ok(code_actions(
parse,
Expand All @@ -473,7 +481,11 @@ impl Workspace for WorkspaceServer {
.format
.ok_or_else(self.build_capability_error(&params.path))?;
let settings = self.settings();
let parse = self.get_parse(params.path.clone(), Some(FeatureName::Format))?;
let parse = self.get_parse(
params.path.clone(),
Some(FeatureName::Format),
self.settings(),
)?;

if !settings.as_ref().formatter().format_with_errors && parse.has_errors() {
return Err(WorkspaceError::format_with_errors_disabled());
Expand All @@ -489,7 +501,11 @@ impl Workspace for WorkspaceServer {
.format_range
.ok_or_else(self.build_capability_error(&params.path))?;
let settings = self.settings();
let parse = self.get_parse(params.path.clone(), Some(FeatureName::Format))?;
let parse = self.get_parse(
params.path.clone(),
Some(FeatureName::Format),
self.settings(),
)?;

if !settings.as_ref().formatter().format_with_errors && parse.has_errors() {
return Err(WorkspaceError::format_with_errors_disabled());
Expand All @@ -506,7 +522,11 @@ impl Workspace for WorkspaceServer {
.ok_or_else(self.build_capability_error(&params.path))?;

let settings = self.settings();
let parse = self.get_parse(params.path.clone(), Some(FeatureName::Format))?;
let parse = self.get_parse(
params.path.clone(),
Some(FeatureName::Format),
self.settings(),
)?;
if !settings.as_ref().formatter().format_with_errors && parse.has_errors() {
return Err(WorkspaceError::format_with_errors_disabled());
}
Expand All @@ -521,7 +541,11 @@ impl Workspace for WorkspaceServer {
.fix_all
.ok_or_else(self.build_capability_error(&params.path))?;
let settings = self.settings.read().unwrap();
let parse = self.get_parse(params.path.clone(), Some(FeatureName::Lint))?;
let parse = self.get_parse(
params.path.clone(),
Some(FeatureName::Lint),
self.settings(),
)?;

let rules = settings.linter().rules.as_ref();
let should_format = settings.formatter().enabled;
Expand All @@ -542,7 +566,7 @@ impl Workspace for WorkspaceServer {
.rename
.ok_or_else(self.build_capability_error(&params.path))?;

let parse = self.get_parse(params.path.clone(), None)?;
let parse = self.get_parse(params.path.clone(), None, self.settings())?;
let result = rename(&params.path, parse, params.symbol_at, params.new_name)?;

Ok(result)
Expand Down Expand Up @@ -571,7 +595,7 @@ impl Workspace for WorkspaceServer {
.organize_imports
.ok_or_else(self.build_capability_error(&params.path))?;

let parse = self.get_parse(params.path, None)?;
let parse = self.get_parse(params.path, None, self.settings())?;
let result = organize_imports(parse)?;

Ok(result)
Expand Down

0 comments on commit 3b9a9b9

Please sign in to comment.