rome / tools

Unified developer tools for JavaScript, TypeScript, and the web
https://docs.rome.tools/
MIT License
23.71k stars 660 forks source link

πŸ› VCS doesn't properly handle .gitignore patterns ending with a / #4528

Open Th3S4mur41 opened 1 year ago

Th3S4mur41 commented 1 year ago

Environment information

$ npx rome rage
CLI:
  Version:                      12.1.2
  Color support:                true

Platform:
  CPU Architecture:             x86_64
  OS:                           windows

Environment:
  ROME_LOG_DIR:                 unset
  NO_COLOR:                     unset
  TERM:                         "xterm-256color"
  JS_RUNTIME_VERSION:           "v18.15.0"
  JS_RUNTIME_NAME:              "node"
  NODE_PACKAGE_MANAGER:         "npm/9.5.0"

Rome Configuration:
  Status:                       Loaded successfully
  Formatter disabled:           false
  Linter disabled:              false
  Organize imports disabled:    true
  VCS disabled:                 false

Workspace:
  Open Documents:               0

Discovering running Rome servers...

Running Rome Server: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

i The client isn't connected to any server but rage discovered this running Rome server.

Server:
  Version:                      12.1.2
  Name:                         rome_lsp
  CPU Architecture:             x86_64
  OS:                           windows

Workspace:
  Open Documents:               0

Other Active Server Workspaces:

Workspace:
  Open Documents:               3
  Client Name:                  Visual Studio Code
  Client Version:               1.78.2

Rome Server Log:

! Please review the content of the log file before sharing it publicly as it may contain sensitive information:
  * Path names that may reveal your name, a project name, or the name of your employer.
  * Source code

β”œβ”€β”rome_lsp::handlers::analysis::code_actions{uri=file:///c%3A/icons/package.json, range=Range { start: Position { line: 68, character: 15 }, end: Position { line: 68, character: 16 } }, only=None, diagnostics=[]}
β”‚ β”œβ”€1ms DEBUG rome_lsp::handlers::analysis Pull actions result: PullActionsResult { actions: [] }
β”‚ β”œβ”€1ms DEBUG rome_lsp::handlers::analysis Suggested actions:
β”‚ β”‚ []
β”œβ”€β”˜
β”œβ”€β”rome_lsp::handlers::text_document::did_change{url=file:///c%3A/icons/package.json, version=2}
β”‚ β”œβ”€β”rome_lsp::session::update_diagnostics{url=file:///c%3A/icons/package.json}
β”‚ β”‚ β”œβ”€β”rome_json_parser::parse{}
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”œβ”€β”˜
β”œβ”€β”˜
β”œβ”€β”rome_lsp::handlers::analysis::code_actions{uri=file:///c%3A/icons/package.json, range=Range { start: Position { line: 68, character: 16 }, end: Position { line: 68, character: 16 } }, only=None, diagnostics=[]}
β”‚ β”œβ”€0ms DEBUG rome_lsp::handlers::analysis Pull actions result: PullActionsResult { actions: [] }
β”‚ β”œβ”€0ms DEBUG rome_lsp::handlers::analysis Suggested actions:
β”‚ β”‚ []
β”œβ”€β”˜
β”œβ”€1628503ms WARN tower_lsp Got a textDocument/didSave notification, but it is not implemented
β”œβ”€β”rome_lsp::server::initialize{capabilities=ClientCapabilities { workspace: None, text_document: None, window: None, general: None, experimental: None }, client_info=ClientInfo { name: "rome_service", version: Some("12.1.2") }}
β”‚ β”œβ”€0ms INFO rome_lsp::server Starting Rome Language Server...
β”œβ”€β”˜
β”œβ”€1649646ms INFO rome_lsp::server Sending shutdown signal
β”œβ”€1649646ms ERROR tower_lsp::transport failed to encode message: failed to encode response: The pipe is being closed. (os error 232)
INFO rome_cli::commands::daemon Received shutdown signal
β”˜
┐rome_cli::commands::daemon::Running Server{pid=22864}
β”œβ”€β”rome_lsp::server::initialize{root_uri=file:///c%3A/icons, capabilities=ClientCapabilities { workspace: Some(WorkspaceClientCapabilities { apply_edit: Some(true), workspace_edit: Some(WorkspaceEditClientCapabilities { document_changes: Some(true), resource_operations: Some([Create, Rename, Delete]), failure_handling: Some(TextOnlyTransactional), normalizes_line_endings: Some(true), change_annotation_support: Some(ChangeAnnotationWorkspaceEditClientCapabilities { groups_on_label: Some(true) }) }), did_change_configuration: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), did_change_watched_files: Some(DidChangeWatchedFilesClientCapabilities { dynamic_registration: Some(true), relative_pattern_support: Some(true) }), symbol: Some(WorkspaceSymbolClientCapabilities { dynamic_registration: Some(true), symbol_kind: Some(SymbolKindCapability { value_set: Some([File, Module, Namespace, Package, Class, Method, Property, Field, Constructor, Enum, Interface, Function, Variable, Constant, String, Number, Boolean, Array, Object, Key, Null, EnumMember, Struct, Event, Operator, TypeParameter]) }), tag_support: Some(TagSupport { value_set: [Deprecated] }), resolve_support: Some(WorkspaceSymbolResolveSupportCapability { properties: ["location.range"] }) }), execute_command: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), workspace_folders: Some(true), configuration: Some(true), semantic_tokens: Some(SemanticTokensWorkspaceClientCapabilities { refresh_support: Some(true) }), code_lens: Some(CodeLensWorkspaceClientCapabilities { refresh_support: Some(true) }), file_operations: Some(WorkspaceFileOperationsClientCapabilities { dynamic_registration: Some(true), did_create: Some(true), will_create: Some(true), did_rename: Some(true), will_rename: Some(true), did_delete: Some(true), will_delete: Some(true) }), inline_value: Some(InlineValueWorkspaceClientCapabilities { refresh_support: Some(true) }), inlay_hint: Some(InlayHintWorkspaceClientCapabilities { refresh_support: Some(true) }) }), text_document: Some(TextDocumentClientCapabilities { synchronization: Some(TextDocumentSyncClientCapabilities { dynamic_registration: Some(true), will_save: Some(true), will_save_wait_until: Some(true), did_save: Some(true) }), completion: Some(CompletionClientCapabilities { dynamic_registration: Some(true), completion_item: Some(CompletionItemCapability { snippet_support: Some(true), commit_characters_support: Some(true), documentation_format: Some([Markdown, PlainText]), deprecated_support: Some(true), preselect_support: Some(true), tag_support: Some(TagSupport { value_set: [Deprecated] }), insert_replace_support: Some(true), resolve_support: Some(CompletionItemCapabilityResolveSupport { properties: ["documentation", "detail", "additionalTextEdits"] }), insert_text_mode_support: Some(InsertTextModeSupport { value_set: [AsIs, AdjustIndentation] }), label_details_support: Some(true) }), completion_item_kind: Some(CompletionItemKindCapability { value_set: Some([Text, Method, Function, Constructor, Field, Variable, Class, Interface, Module, Property, Unit, Value, Enum, Keyword, Snippet, Color, File, Reference, Folder, EnumMember, Constant, Struct, Event, Operator, TypeParameter]) }), context_support: Some(true), insert_text_mode: Some(AdjustIndentation), completion_list: Some(CompletionListCapability { item_defaults: Some(["commitCharacters", "editRange", "insertTextFormat", "insertTextMode"]) }) }), hover: Some(HoverClientCapabilities { dynamic_registration: Some(true), content_format: Some([Markdown, PlainText]) }), signature_help: Some(SignatureHelpClientCapabilities { dynamic_registration: Some(true), signature_information: Some(SignatureInformationSettings { documentation_format: Some([Markdown, PlainText]), parameter_information: Some(ParameterInformationSettings { label_offset_support: Some(true) }), active_parameter_support: Some(true) }), context_support: Some(true) }), references: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_highlight: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_symbol: Some(DocumentSymbolClientCapabilities { dynamic_registration: Some(true), symbol_kind: Some(SymbolKindCapability { value_set: Some([File, Module, Namespace, Package, Class, Method, Property, Field, Constructor, Enum, Interface, Function, Variable, Constant, String, Number, Boolean, Array, Object, Key, Null, EnumMember, Struct, Event, Operator, TypeParameter]) }), hierarchical_document_symbol_support: Some(true), tag_support: Some(TagSupport { value_set: [Deprecated] }) }), formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), range_formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), on_type_formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), declaration: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), definition: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), type_definition: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), implementation: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), code_action: Some(CodeActionClientCapabilities { dynamic_registration: Some(true), code_action_literal_support: Some(CodeActionLiteralSupport { code_action_kind: CodeActionKindLiteralSupport { value_set: ["", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports"] } }), is_preferred_support: Some(true), disabled_support: Some(true), data_support: Some(true), resolve_support: Some(CodeActionCapabilityResolveSupport { properties: ["edit"] }), honors_change_annotations: Some(false) }), code_lens: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_link: Some(DocumentLinkClientCapabilities { dynamic_registration: Some(true), tooltip_support: Some(true) }), color_provider: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), rename: Some(RenameClientCapabilities { dynamic_registration: Some(true), prepare_support: Some(true), prepare_support_default_behavior: Some(Identifier), honors_change_annotations: Some(true) }), publish_diagnostics: Some(PublishDiagnosticsClientCapabilities { related_information: Some(true), tag_support: Some(TagSupport { value_set: [Unnecessary, Deprecated] }), version_support: Some(false), code_description_support: Some(true), data_support: Some(true) }), folding_range: Some(FoldingRangeClientCapabilities { dynamic_registration: Some(true), range_limit: Some(5000), line_folding_only: Some(true), folding_range_kind: Some(FoldingRangeKindCapability { value_set: Some([Comment, Imports, Region]) }), folding_range: Some(FoldingRangeCapability { collapsed_text: Some(false) }) }), selection_range: Some(SelectionRangeClientCapabilities { dynamic_registration: Some(true) }), linked_editing_range: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), call_hierarchy: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), semantic_tokens: Some(SemanticTokensClientCapabilities { dynamic_registration: Some(true), requests: SemanticTokensClientCapabilitiesRequests { range: Some(true), full: Some(Delta { delta: Some(true) }) }, token_types: [SemanticTokenType("namespace"), SemanticTokenType("type"), SemanticTokenType("class"), SemanticTokenType("enum"), SemanticTokenType("interface"), SemanticTokenType("struct"), SemanticTokenType("typeParameter"), SemanticTokenType("parameter"), SemanticTokenType("variable"), SemanticTokenType("property"), SemanticTokenType("enumMember"), SemanticTokenType("event"), SemanticTokenType("function"), SemanticTokenType("method"), SemanticTokenType("macro"), SemanticTokenType("keyword"), SemanticTokenType("modifier"), SemanticTokenType("comment"), SemanticTokenType("string"), SemanticTokenType("number"), SemanticTokenType("regexp"), SemanticTokenType("operator"), SemanticTokenType("decorator")], token_modifiers: [SemanticTokenModifier("declaration"), SemanticTokenModifier("definition"), SemanticTokenModifier("readonly"), SemanticTokenModifier("static"), SemanticTokenModifier("deprecated"), SemanticTokenModifier("abstract"), SemanticTokenModifier("async"), SemanticTokenModifier("modification"), SemanticTokenModifier("documentation"), SemanticTokenModifier("defaultLibrary")], formats: [TokenFormat("relative")], overlapping_token_support: Some(false), multiline_token_support: Some(false), server_cancel_support: Some(true), augments_syntax_tokens: Some(true) }), moniker: None, type_hierarchy: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), inline_value: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), inlay_hint: Some(InlayHintClientCapabilities { dynamic_registration: Some(true), resolve_support: Some(InlayHintResolveClientCapabilities { properties: ["tooltip", "textEdits", "label.tooltip", "label.location", "label.command"] }) }) }), window: Some(WindowClientCapabilities { work_done_progress: Some(true), show_message: Some(ShowMessageRequestClientCapabilities { message_action_item: Some(MessageActionItemCapabilities { additional_properties_support: Some(true) }) }), show_document: Some(ShowDocumentClientCapabilities { support: true }) }), general: Some(GeneralClientCapabilities { regular_expressions: Some(RegularExpressionsClientCapabilities { engine: "ECMAScript", version: Some("ES2020") }), markdown: Some(MarkdownClientCapabilities { parser: "marked", version: Some("1.1.0"), allowed_tags: None }), stale_request_support: Some(StaleRequestSupportClientCapabilities { cancel: true, retry_on_content_modified: ["textDocument/semanticTokens/full", "textDocument/semanticTokens/range", "textDocument/semanticTokens/full/delta"] }), position_encodings: Some([PositionEncodingKind("utf-16")]) }), experimental: None }, client_info=ClientInfo { name: "Visual Studio Code", version: Some("1.78.2") }, root_path="c:\\\icons", workspace_folders=[WorkspaceFolder { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/c%3A/icons", query: None, fragment: None }, name: "icons" }]}
β”‚ β”œβ”€0ms INFO rome_lsp::server Starting Rome Language Server...
β”‚ β”œβ”€0ms WARN rome_lsp::server The Rome Server was initialized with the deprecated `root_path` parameter: this is not supported, use `root_uri` instead
β”‚ β”œβ”€0ms WARN rome_lsp::server The Rome Server was initialized with the `workspace_folders` parameter: this is unsupported at the moment, use `root_uri` instead
β”œβ”€β”˜
β”œβ”€β”rome_lsp::server::initialized{params=InitializedParams}
β”‚ β”œβ”€0ms INFO rome_lsp::server Attempting to load the configuration from 'rome.json' file
β”‚ β”œβ”€β”rome_lsp::session::load_extension_settings{}
β”‚ β”œβ”€β”rome_lsp::session::load_workspace_settings{}
β”‚ β”‚ β”œβ”€β”rome_fs::fs::os::OsFileSystem::open_with_options{path="c:\\\icons\\rome.json", options=OpenOptions { read: true, write: false, truncate: false, create: false, create_new: false }}
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”‚ β”œβ”€β”rome_fs::fs::os::OsFile::read_to_string{}
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”‚ β”œβ”€β”rome_json_parser::parse{}
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”‚ β”œβ”€0ms INFO rome_lsp::session Loaded workspace settings: Configuration {
β”‚ β”‚ β”‚     schema: Some(
β”‚ β”‚ β”‚         "./node_modules/rome/configuration_schema.json",
β”‚ β”‚ β”‚     ),
β”‚ β”‚ β”‚     vcs: Some(
β”‚ β”‚ β”‚         VcsConfiguration {
β”‚ β”‚ β”‚             client_kind: Some(
β”‚ β”‚ β”‚                 Git,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             enabled: Some(
β”‚ β”‚ β”‚                 true,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             use_ignore_file: Some(
β”‚ β”‚ β”‚                 true,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             root: None,
β”‚ β”‚ β”‚         },
β”‚ β”‚ β”‚     ),
β”‚ β”‚ β”‚     files: None,
β”‚ β”‚ β”‚     formatter: Some(
β”‚ β”‚ β”‚         FormatterConfiguration {
β”‚ β”‚ β”‚             enabled: Some(
β”‚ β”‚ β”‚                 true,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             format_with_errors: Some(
β”‚ β”‚ β”‚                 false,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             indent_style: Some(
β”‚ β”‚ β”‚                 Tab,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             indent_size: Some(
β”‚ β”‚ β”‚                 2,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             line_width: Some(
β”‚ β”‚ β”‚                 LineWidth(
β”‚ β”‚ β”‚                     120,
β”‚ β”‚ β”‚                 ),
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             ignore: None,
β”‚ β”‚ β”‚         },
β”‚ β”‚ β”‚     ),
β”‚ β”‚ β”‚     organize_imports: Some(
β”‚ β”‚ β”‚         OrganizeImports {
β”‚ β”‚ β”‚             enabled: Some(
β”‚ β”‚ β”‚                 false,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             ignore: None,
β”‚ β”‚ β”‚         },
β”‚ β”‚ β”‚     ),
β”‚ β”‚ β”‚     linter: Some(
β”‚ β”‚ β”‚         LinterConfiguration {
β”‚ β”‚ β”‚             enabled: Some(
β”‚ β”‚ β”‚                 true,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             rules: Some(
β”‚ β”‚ β”‚                 Rules {
β”‚ β”‚ β”‚                     recommended: Some(
β”‚ β”‚ β”‚                         true,
β”‚ β”‚ β”‚                     ),
β”‚ β”‚ β”‚                     all: None,
β”‚ β”‚ β”‚                     a11y: None,
β”‚ β”‚ β”‚                     complexity: None,
β”‚ β”‚ β”‚                     correctness: None,
β”‚ β”‚ β”‚                     nursery: None,
β”‚ β”‚ β”‚                     performance: None,
β”‚ β”‚ β”‚                     security: None,
β”‚ β”‚ β”‚                     style: None,
β”‚ β”‚ β”‚                     suspicious: None,
β”‚ β”‚ β”‚                 },
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             ignore: None,
β”‚ β”‚ β”‚         },
β”‚ β”‚ β”‚     ),
β”‚ β”‚ β”‚     javascript: Some(
β”‚ β”‚ β”‚         JavascriptConfiguration {
β”‚ β”‚ β”‚             formatter: Some(
β”‚ β”‚ β”‚                 JavascriptFormatter {
β”‚ β”‚ β”‚                     quote_style: Some(
β”‚ β”‚ β”‚                         Single,
β”‚ β”‚ β”‚                     ),
β”‚ β”‚ β”‚                     quote_properties: None,
β”‚ β”‚ β”‚                     trailing_comma: Some(
β”‚ β”‚ β”‚                         None,
β”‚ β”‚ β”‚                     ),
β”‚ β”‚ β”‚                     semicolons: None,
β”‚ β”‚ β”‚                 },
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             globals: None,
β”‚ β”‚ β”‚             organize_imports: None,
β”‚ β”‚ β”‚         },
β”‚ β”‚ β”‚     ),
β”‚ β”‚ β”‚ }
β”‚ β”‚ β”œβ”€β”rome_service::workspace::server::update_settings{params=UpdateSettingsParams { configuration: Configuration { schema: Some("./node_modules/rome/configuration_schema.json"), vcs: Some(VcsConfiguration { client_kind: Some(Git), enabled: Some(true), use_ignore_file: Some(true), root: None }), files: None, formatter: Some(FormatterConfiguration { enabled: Some(true), format_with_errors: Some(false), indent_style: Some(Tab), indent_size: Some(2), line_width: Some(LineWidth(120)), ignore: None }), organize_imports: Some(OrganizeImports { enabled: Some(false), ignore: None }), linter: Some(LinterConfiguration { enabled: Some(true), rules: Some(Rules { recommended: Some(true), all: None, a11y: None, complexity: None, correctness: None, nursery: None, performance: None, security: None, style: None, suspicious: None }), ignore: None }), javascript: Some(JavascriptConfiguration { formatter: Some(JavascriptFormatter { quote_style: Some(Single), quote_properties: None, trailing_comma: Some(None), semicolons: None }), globals: None, organize_imports: None }) } }}
β”‚ β”‚ β”‚ β”œβ”€β”rome_service::settings::merge_with_configuration{configuration=Configuration { schema: Some("./node_modules/rome/configuration_schema.json"), vcs: Some(VcsConfiguration { client_kind: Some(Git), enabled: Some(true), use_ignore_file: Some(true), root: None }), files: None, formatter: Some(FormatterConfiguration { enabled: Some(true), format_with_errors: Some(false), indent_style: Some(Tab), indent_size: Some(2), line_width: Some(LineWidth(120)), ignore: None }), organize_imports: Some(OrganizeImports { enabled: Some(false), ignore: None }), linter: Some(LinterConfiguration { enabled: Some(true), rules: Some(Rules { recommended: Some(true), all: None, a11y: None, complexity: None, correctness: None, nursery: None, performance: None, security: None, style: None, suspicious: None }), ignore: None }), javascript: Some(JavascriptConfiguration { formatter: Some(JavascriptFormatter { quote_style: Some(Single), quote_properties: None, trailing_comma: Some(None), semicolons: None }), globals: None, organize_imports: None }) }}
β”‚ β”‚ β”‚ β”œβ”€β”˜
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”œβ”€β”˜
β”œβ”€β”rome_lsp::handlers::text_document::did_open{params=DidOpenTextDocumentParams { text_document: TextDocumentItem { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/c%3A/icons/bin/cli.mjs", query: None, fragment: None }, language_id: "javascript", version: 3, text: "#!/usr/bin/env node\n\n/**\n * ato-icons script to generate icon sprites to use with Atos Parallel\n */\n\nimport yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\nimport chalk from 'chalk';\nimport path from 'path';\nimport fs from 'fs';\nimport SVGSpriter from 'svg-sprite';\nimport glob from 'glob';\n\nconst iconTypes = ['regular', 'fill', 'light', 'thin', 'bold', 'duotone'];\n\nconst argv = yargs(hideBin(process.argv))\n\t.usage('Create an SVG sprite with the desired icon types.\\n\\n Usage: $0 [options]')\n\t.example('$0', 'Generate a sprite with regular icons in ./public')\n\t.example('$0 -o assets', 'Generate a sprite with regular icons in ./assets')\n\t.example('$0 -i icons/svg', 'Generate a sprite with alcatraz regular icons and icons from icons/svg')\n\t.example('$0 -t regular fill', 'Generate a sprite with regular and fill icons in ./public')\n\t.option('t', {\n\t\talias: 'types',\n\t\tdescription: 'types of icons to build the sprite for',\n\t\ttype: 'array',\n\t\tdefault: ['regular']\n\t})\n\t.option('i', {\n\t\talias: 'input',\n\t\tdescription: 'input directories containing additional icons',\n\t\ttype: 'array'\n\t})\n\t.option('o', {\n\t\talias: 'out',\n\t\tdescription: 'output path',\n\t\ttype: 'string',\n\t\tdefault: 'public'\n\t})\n\t.option('verbose', {\n\t\tdescription: 'verbose output',\n\t\ttype: 'boolean',\n\t\tdefault: false\n\t})\n\t.demandCommand(0)\n\t.help()\n\t.alias('h', 'help')\n\t.showHelpOnFail(true)\n\t.version()\n\t.alias('v', 'version').argv;\n\n/*\n * Configure the sprite builder\n */\nconst name = 'parallel-sprite.svg'; // The name of the generated sprite\nconst config = {\n\tdest: argv.out,\n\tlog: argv.verbose ? 'verbose' : 'info',\n\tshape: {\n\t\tdimension: {\n\t\t\tmaxWidth: 16,\n\t\t\tmaxHeight: 16\n\t\t}\n\t},\n\tmode: {\n\t\tsymbol: {\n\t\t\tdest: '.',\n\t\t\tsprite: name\n\t\t}\n\t}\n};\nconsole.info('Generating', chalk.yellow(`${argv.out}/${name}`));\n\n/*\n * Add the desired icon types to the arguments\n */\nconst types = argv.types.filter((value) => iconTypes.includes(value));\nif (types.length === 0) {\n\tconsole.error(chalk.red('No valid icon types found.\\nValid types are: ' + iconTypes.join(', ')));\n\tprocess.exit(1);\n}\nargv.types.forEach((type, index) => {\n\ttypes[index] = type === 'regular' ? '!(*--*)' : `*--${type}`;\n});\nconsole.info('Icon types to add to the sprite:', chalk.blue(argv.types.join(', ')));\n\n/*\n * Specify the base path containing the parallel icons\n */\nconst basePath = ['node_modules/icons/svg'];\nif (!process.argv[1].includes('node_modules')) {\n\t// Include local icons if the script is called from the project root\n\tbasePath.push('svg');\n}\n\n/*\n * Add additional custom paths containing icons to integrate in the sprite\n */\nconst srcPath = basePath.concat(argv.input || []);\nconsole.debug('Paths to include icons from: ', chalk.blue(srcPath.join(', ')));\n\nconst assets = `{${srcPath.join()},}${path.sep}{${types.join()},}.svg`; // Types need a trailing coma here or the sprite will not be generated if only one type is selected\nif (argv.verbose) {\n\tconsole.debug('Input glob pattern: ', chalk.blue(assets));\n}\n\nconst spriter = new SVGSpriter(config);\n\n/*\n * Add all icons to the sprite\n */\nglob.sync(assets).forEach((file) => {\n\tlet basename = file;\n\tlet filepath = path.resolve(file);\n\tconst stat = fs.lstatSync(filepath);\n\tif (stat.isSymbolicLink()) {\n\t\tfilepath = fs.readlinkSync(filepath);\n\t\tbasename = path.basename(filepath);\n\t} else {\n\t\tconst basepos = basename.lastIndexOf('./');\n\t\tbasename = basepos >= 0 ? basename.substr(basepos + 2) : path.basename(filepath);\n\t}\n\n\tspriter.add(filepath, basename, fs.readFileSync(filepath));\n});\n\n/*\n * Compile the sprite\n */\nspriter.compile((error, result) => {\n\t/* Write `result` files to disk (or do whatever with them ...) */\n\tfor (const mode in result) {\n\t\tfor (const resource in result[mode]) {\n\t\t\tfs.mkdirSync(path.dirname(result[mode][resource].path), {\n\t\t\t\trecursive: true\n\t\t\t});\n\t\t\tfs.writeFileSync(result[mode][resource].path, result[mode][resource].contents);\n\t\t}\n\t}\n});\n" } }}
β”‚ β”œβ”€β”rome_lsp::session::update_diagnostics{url=file:///c%3A/icons/bin/cli.mjs}
β”‚ β”‚ β”œβ”€β”rome_js_parser::parse::parse{}
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”œβ”€β”˜
β”œβ”€β”˜
β”œβ”€β”rome_lsp::handlers::text_document::did_open{params=DidOpenTextDocumentParams { text_document: TextDocumentItem { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/c%3A/icons/rome.json", query: None, fragment: None }, language_id: "json", version: 5, text: "{\n\t\"$schema\": \"./node_modules/rome/configuration_schema.json\",\n\t\"linter\": {\n\t\t\"enabled\": true,\n\t\t\"rules\": {\n\t\t\t\"recommended\": true\n\t\t}\n\t},\n\t\"formatter\": {\n\t\t\"enabled\": true,\n\t\t\"lineWidth\": 120\n\t},\n\t\"javascript\": {\n\t\t\"formatter\": {\n\t\t\t\"quoteStyle\": \"single\",\n\t\t\t\"trailingComma\": \"none\"\n\t\t}\n\t},\n\t\"vcs\": {\n\t\t\"enabled\": true,\n\t\t\"clientKind\": \"git\",\n\t\t\"useIgnoreFile\": true\n\t}\n}\n" } }}
β”‚ β”œβ”€β”rome_lsp::session::update_diagnostics{url=file:///c%3A/icons/rome.json}
β”‚ β”‚ β”œβ”€β”rome_json_parser::parse{}
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”œβ”€β”˜
β”œβ”€β”˜
β”‚ β”‚ β”œβ”€11ms INFO rome_lsp::session Loaded client configuration: Object {
β”‚ β”‚ β”‚     "lspBin": Null,
β”‚ β”‚ β”‚     "rename": Null,
β”‚ β”‚ β”‚     "requireConfiguration": Bool(true),
β”‚ β”‚ β”‚ }
β”‚ β”œβ”€β”˜
β”œβ”€β”rome_lsp::handlers::text_document::did_open{params=DidOpenTextDocumentParams { text_document: TextDocumentItem { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/c%3A/icons/package.json", query: None, fragment: None }, language_id: "json", version: 2, text: "{\n\t\"name\": \"icons\",\n\t\"version\": \"1.3.3\",\n\t\"license\": \"LICENSE\",\n\t\"description\": \"SVG Icons package to be used with Parallel\",\n\t\"keywords\": [\"assets\", \"design\", \"design-system\", \"parallel\", \"icons\", \"iconset\", \"svg\", \"svg-sprite\"],\n\t\"bugs\": \"https://github.com/atos-parallel/icons/issues\",\n\t\"repository\": {\n\t\t\"type\": \"git\",\n\t\t\"url\": \"https://github.com/atos-parallel/icons.git\"\n\t},\n\t\"publishConfig\": {\n\t\t\"registry\": \"https://npm.pkg.github.com\"\n\t},\n\t\"bin\": {\n\t\t\"parallel-icons\": \"./bin/cli.mjs\"\n\t},\n\t\"files\": [\"bin/*\", \"src/*\", \"svg/*\", \"*.svg\", \"*.html\", \"CHANGELOG.md\"],\n\t\"main\": \"src/icon-component.js\",\n\t\"engines\": {\n\t\t\"node\": \">= 16.0.0\",\n\t\t\"npm\": \">= 8.0.0\"\n\t},\n\t\"scripts\": {\n\t\t\"start\": \"echo 'No start script defined for this project'\",\n\t\t\"clean\": \"npx rimraf dist/**  && npx rimraf *.svg && npx rimraf *.html && npx rimraf svg/**\",\n\t\t\"build\": \"npm-run-all clean build:*\",\n\t\t\"build:sprite-regular\": \"svg-sprite -C .svg-sprite/sprite.json --symbol-sprite=sprite.svg --symbol-example=true --symbol-example-dest=sprite.html {assets/svg/regular/**/*,assets/phosphor/regular/**/*}.svg\",\n\t\t\"build:sprite-bold\": \"svg-sprite -C .svg-sprite/sprite.json --symbol-sprite=sprite-bold.svg --symbol-example=true --symbol-example-dest=sprite-bold.html {assets/svg/bold/**/*,assets/phosphor/bold/**/*}.svg\",\n\t\t\"build:sprite-duotone\": \"svg-sprite -C .svg-sprite/sprite.json --symbol-sprite=sprite-duotone.svg --symbol-example=true --symbol-example-dest=sprite-duotone.html {assets/svg/duotone/**/*,assets/phosphor/duotone/**/*}.svg\",\n\t\t\"build:sprite-fill\": \"svg-sprite -C .svg-sprite/sprite.json --symbol-sprite=sprite-fill.svg --symbol-example=true --symbol-example-dest=sprite-fill.html {assets/svg/fill/**/*,assets/phosphor/fill/**/*}.svg\",\n\t\t\"build:sprite-light\": \"svg-sprite -C .svg-sprite/sprite.json --symbol-sprite=sprite-light.svg --symbol-example=true --symbol-example-dest=sprite-light.html {assets/svg/light/**/*,assets/phosphor/light/**/*}.svg\",\n\t\t\"build:sprite-thin\": \"svg-sprite -C .svg-sprite/sprite.json --symbol-sprite=sprite-thin.svg --symbol-example=true --symbol-example-dest=sprite-thin.html {assets/svg/thin/**/*,assets/phosphor/thin/**/*}.svg\",\n\t\t\"lint\": \"rome ci .\",\n\t\t\"lint:style\": \"rome check . && prettier --check --ignore-unknown .\",\n\t\t\"lint:style:fix\": \"rome format --write . && prettier --write --ignore-unknown .\",\n\t\t\"lint:fix\": \"npm run lint:style:fix && rome check . --apply\",\n\t\t\"git:pre-commit\": \"lint-staged\",\n\t\t\"git:pre-push\": \"npm test\",\n\t\t\"prepare\": \"husky install\",\n\t\t\"prepack\": \"cp dist/* . && [ -d svg ] || mkdir svg && find assets -iname \\\"*.svg\\\" -exec cp -t svg -i '{}' +\",\n\t\t\"release\": \"npx semantic-release\",\n\t\t\"test\": \"concurrently \\\"npm run test:cli\\\" \\\"npm run test:web\\\"\",\n\t\t\"test:cli\": \"npm run prepack && vitest run test/cli.spec.mjs\",\n\t\t\"test:web\": \"web-test-runner\",\n\t\t\"test:watch\": \"npm run prepack && vitest test/cli.spec.mjs\"\n\t},\n\t\"dependencies\": {\n\t\t\"chalk\": \"^5.1.0\",\n\t\t\"lit\": \"^2.7.4\",\n\t\t\"svg-sprite\": \"^2.0.0\",\n\t\t\"yargs\": \"^17.6.0\"\n\t},\n\t\"devDependencies\": {\n\t\t\"release-config\": \"1.2.4\",\n\t\t\"@commitlint/cli\": \"^17.1.2\",\n\t\t\"@commitlint/config-conventional\": \"^17.1.0\",\n\t\t\"@open-wc/testing\": \"^3.0.0-next.5\",\n\t\t\"@web/dev-server\": \"^0.2.1\",\n\t\t\"@web/test-runner\": \"^0.16.1\",\n\t\t\"@web/test-runner-playwright\": \"^0.10.0\",\n\t\t\"concurrently\": \"^8.0.1\",\n\t\t\"husky\": \"^8.0.1\",\n\t\t\"jsdom\": \"^22.0.0\",\n\t\t\"lint-staged\": \"^13.0.3\",\n\t\t\"npm-run-all\": \"^4.1.5\",\n\t\t\"playwright\": \"^1.34.0\",\n\t\t\"prettier\": \"^2.8.7\",\n\t\t\"rome\": \"^12.1.0\",\n\t\t\"vitest\": \"^0.31.0\"\n\t}\n}\n" } }}
β”‚ β”œβ”€β”rome_lsp::session::update_diagnostics{url=file:///c%3A/icons/package.json}
β”‚ β”‚ β”œβ”€β”rome_json_parser::parse{}
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”œβ”€β”˜
β”œβ”€β”˜
β”œβ”€β”rome_lsp::handlers::analysis::code_actions{uri=file:///c%3A/icons/package.json, range=Range { start: Position { line: 68, character: 16 }, end: Position { line: 68, character: 16 } }, only=None, diagnostics=[]}
β”‚ β”œβ”€0ms DEBUG rome_lsp::handlers::analysis Pull actions result: PullActionsResult { actions: [] }
β”‚ β”œβ”€0ms DEBUG rome_lsp::handlers::analysis Suggested actions:
β”‚ β”‚ []
β”œβ”€β”˜
β”‚ β”œβ”€15ms INFO rome_lsp::session Unregister capabilities "workspace/didChangeWatchedFiles, workspace/didChangeConfiguration, textDocument/rangeFormatting, textDocument/onTypeFormatting, textDocument/rename, textDocument/formatting"
β”‚ β”œβ”€18ms INFO rome_lsp::session Register capabilities "workspace/didChangeWatchedFiles, workspace/didChangeConfiguration, textDocument/rangeFormatting, textDocument/onTypeFormatting, textDocument/formatting"
β”‚ β”œβ”€β”rome_lsp::session::update_diagnostics{url=file:///c%3A/icons/bin/cli.mjs}
β”‚ β”œβ”€β”˜
β”‚ β”œβ”€β”rome_lsp::session::update_diagnostics{url=file:///c%3A/icons/rome.json}
β”‚ β”œβ”€β”rome_lsp::session::update_diagnostics{url=file:///c%3A/icons/package.json}
β”‚ β”œβ”€β”˜
β”‚ β”œβ”€β”˜
β”œβ”€β”˜
β”œβ”€β”rome_lsp::handlers::analysis::code_actions{uri=file:///c%3A/icons/rome.json, range=Range { start: Position { line: 0, character: 0 }, end: Position { line: 0, character: 0 } }, only=None, diagnostics=[]}
β”‚ β”œβ”€0ms DEBUG rome_lsp::handlers::analysis Pull actions result: PullActionsResult { actions: [] }
β”‚ β”œβ”€0ms DEBUG rome_lsp::handlers::analysis Suggested actions:
β”‚ β”‚ []
β”œβ”€β”˜
β”œβ”€β”rome_lsp::handlers::analysis::code_actions{uri=file:///c%3A/icons/rome.json, range=Range { start: Position { line: 17, character: 3 }, end: Position { line: 17, character: 3 } }, only=None, diagnostics=[]}
β”‚ β”œβ”€0ms DEBUG rome_lsp::handlers::analysis Pull actions result: PullActionsResult { actions: [] }
β”‚ β”œβ”€0ms DEBUG rome_lsp::handlers::analysis Suggested actions:
β”‚ β”‚ []
β”œβ”€β”˜
β”œβ”€β”rome_lsp::handlers::analysis::code_actions{uri=file:///c%3A/icons/rome.json, range=Range { start: Position { line: 21, character: 23 }, end: Position { line: 21, character: 23 } }, only=None, diagnostics=[]}
β”‚ β”œβ”€0ms DEBUG rome_lsp::handlers::analysis Pull actions result: PullActionsResult { actions: [] }
β”‚ β”œβ”€0ms DEBUG rome_lsp::handlers::analysis Suggested actions:
β”‚ β”‚ []
β”œβ”€β”˜
β”œβ”€β”rome_lsp::handlers::text_document::did_change{url=file:///c%3A/icons/rome.json, version=6}
β”‚ β”œβ”€β”rome_lsp::session::update_diagnostics{url=file:///c%3A/icons/rome.json}
β”‚ β”‚ β”œβ”€β”rome_json_parser::parse{}
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”œβ”€β”˜
β”œβ”€β”˜
β”œβ”€β”rome_lsp::handlers::text_document::did_change{url=file:///c%3A/icons/rome.json, version=7}
β”‚ β”œβ”€β”rome_lsp::session::update_diagnostics{url=file:///c%3A/icons/rome.json}
β”‚ β”‚ β”œβ”€β”rome_json_parser::parse{}
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”œβ”€β”˜
β”œβ”€β”˜
β”œβ”€β”rome_lsp::handlers::analysis::code_actions{uri=file:///c%3A/icons/rome.json, range=Range { start: Position { line: 18, character: 0 }, end: Position { line: 20, character: 3 } }, only=None, diagnostics=[]}
β”‚ β”œβ”€0ms DEBUG rome_lsp::handlers::analysis Pull actions result: PullActionsResult { actions: [] }
β”‚ β”œβ”€0ms DEBUG rome_lsp::handlers::analysis Suggested actions:
β”‚ β”‚ []
β”œβ”€β”˜
β”œβ”€48316ms WARN tower_lsp Got a textDocument/didSave notification, but it is not implemented
β”œβ”€β”rome_lsp::server::did_change_watched_files{params=DidChangeWatchedFilesParams { changes: [FileEvent { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/c%3A/icons/rome.json", query: None, fragment: None }, typ: Changed }] }}
β”‚ β”œβ”€β”rome_lsp::session::load_workspace_settings{}
β”‚ β”‚ β”œβ”€β”rome_fs::fs::os::OsFileSystem::open_with_options{path="c:\\\icons\\rome.json", options=OpenOptions { read: true, write: false, truncate: false, create: false, create_new: false }}
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”‚ β”œβ”€β”rome_fs::fs::os::OsFile::read_to_string{}
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”‚ β”œβ”€β”rome_json_parser::parse{}
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”‚ β”œβ”€1ms INFO rome_lsp::session Loaded workspace settings: Configuration {
β”‚ β”‚ β”‚     schema: Some(
β”‚ β”‚ β”‚         "./node_modules/rome/configuration_schema.json",
β”‚ β”‚ β”‚     ),
β”‚ β”‚ β”‚     vcs: Some(
β”‚ β”‚ β”‚         VcsConfiguration {
β”‚ β”‚ β”‚             client_kind: Some(
β”‚ β”‚ β”‚                 Git,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             enabled: Some(
β”‚ β”‚ β”‚                 true,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             use_ignore_file: Some(
β”‚ β”‚ β”‚                 true,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             root: None,
β”‚ β”‚ β”‚         },
β”‚ β”‚ β”‚     ),
β”‚ β”‚ β”‚     files: Some(
β”‚ β”‚ β”‚         FilesConfiguration {
β”‚ β”‚ β”‚             max_size: None,
β”‚ β”‚ β”‚             ignore: Some(
β”‚ β”‚ β”‚                 StringSet(
β”‚ β”‚ β”‚                     {
β”‚ β”‚ β”‚                         ".devcontainer",
β”‚ β”‚ β”‚                         ".history",
β”‚ β”‚ β”‚                         "coverage",
β”‚ β”‚ β”‚                     },
β”‚ β”‚ β”‚                 ),
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚         },
β”‚ β”‚ β”‚     ),
β”‚ β”‚ β”‚     formatter: Some(
β”‚ β”‚ β”‚         FormatterConfiguration {
β”‚ β”‚ β”‚             enabled: Some(
β”‚ β”‚ β”‚                 true,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             format_with_errors: Some(
β”‚ β”‚ β”‚                 false,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             indent_style: Some(
β”‚ β”‚ β”‚                 Tab,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             indent_size: Some(
β”‚ β”‚ β”‚                 2,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             line_width: Some(
β”‚ β”‚ β”‚                 LineWidth(
β”‚ β”‚ β”‚                     120,
β”‚ β”‚ β”‚                 ),
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             ignore: None,
β”‚ β”‚ β”‚         },
β”‚ β”‚ β”‚     ),
β”‚ β”‚ β”‚     organize_imports: Some(
β”‚ β”‚ β”‚         OrganizeImports {
β”‚ β”‚ β”‚             enabled: Some(
β”‚ β”‚ β”‚                 false,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             ignore: None,
β”‚ β”‚ β”‚         },
β”‚ β”‚ β”‚     ),
β”‚ β”‚ β”‚     linter: Some(
β”‚ β”‚ β”‚         LinterConfiguration {
β”‚ β”‚ β”‚             enabled: Some(
β”‚ β”‚ β”‚                 true,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             rules: Some(
β”‚ β”‚ β”‚                 Rules {
β”‚ β”‚ β”‚                     recommended: Some(
β”‚ β”‚ β”‚                         true,
β”‚ β”‚ β”‚                     ),
β”‚ β”‚ β”‚                     all: None,
β”‚ β”‚ β”‚                     a11y: None,
β”‚ β”‚ β”‚                     complexity: None,
β”‚ β”‚ β”‚                     correctness: None,
β”‚ β”‚ β”‚                     nursery: None,
β”‚ β”‚ β”‚                     performance: None,
β”‚ β”‚ β”‚                     security: None,
β”‚ β”‚ β”‚                     style: None,
β”‚ β”‚ β”‚                     suspicious: None,
β”‚ β”‚ β”‚                 },
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             ignore: None,
β”‚ β”‚ β”‚         },
β”‚ β”‚ β”‚     ),
β”‚ β”‚ β”‚     javascript: Some(
β”‚ β”‚ β”‚         JavascriptConfiguration {
β”‚ β”‚ β”‚             formatter: Some(
β”‚ β”‚ β”‚                 JavascriptFormatter {
β”‚ β”‚ β”‚                     quote_style: Some(
β”‚ β”‚ β”‚                         Single,
β”‚ β”‚ β”‚                     ),
β”‚ β”‚ β”‚                     quote_properties: None,
β”‚ β”‚ β”‚                     trailing_comma: Some(
β”‚ β”‚ β”‚                         None,
β”‚ β”‚ β”‚                     ),
β”‚ β”‚ β”‚                     semicolons: None,
β”‚ β”‚ β”‚                 },
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             globals: None,
β”‚ β”‚ β”‚             organize_imports: None,
β”‚ β”‚ β”‚         },
β”‚ β”‚ β”‚     ),
β”‚ β”‚ β”‚ }
β”‚ β”‚ β”œβ”€β”rome_service::workspace::server::update_settings{params=UpdateSettingsParams { configuration: Configuration { schema: Some("./node_modules/rome/configuration_schema.json"), vcs: Some(VcsConfiguration { client_kind: Some(Git), enabled: Some(true), use_ignore_file: Some(true), root: None }), files: Some(FilesConfiguration { max_size: None, ignore: Some(StringSet({".devcontainer", ".history", "coverage"})) }), formatter: Some(FormatterConfiguration { enabled: Some(true), format_with_errors: Some(false), indent_style: Some(Tab), indent_size: Some(2), line_width: Some(LineWidth(120)), ignore: None }), organize_imports: Some(OrganizeImports { enabled: Some(false), ignore: None }), linter: Some(LinterConfiguration { enabled: Some(true), rules: Some(Rules { recommended: Some(true), all: None, a11y: None, complexity: None, correctness: None, nursery: None, performance: None, security: None, style: None, suspicious: None }), ignore: None }), javascript: Some(JavascriptConfiguration { formatter: Some(JavascriptFormatter { quote_style: Some(Single), quote_properties: None, trailing_comma: Some(None), semicolons: None }), globals: None, organize_imports: None }) } }}
β”‚ β”‚ β”‚ β”œβ”€β”rome_service::settings::merge_with_configuration{configuration=Configuration { schema: Some("./node_modules/rome/configuration_schema.json"), vcs: Some(VcsConfiguration { client_kind: Some(Git), enabled: Some(true), use_ignore_file: Some(true), root: None }), files: Some(FilesConfiguration { max_size: None, ignore: Some(StringSet({".devcontainer", ".history", "coverage"})) }), formatter: Some(FormatterConfiguration { enabled: Some(true), format_with_errors: Some(false), indent_style: Some(Tab), indent_size: Some(2), line_width: Some(LineWidth(120)), ignore: None }), organize_imports: Some(OrganizeImports { enabled: Some(false), ignore: None }), linter: Some(LinterConfiguration { enabled: Some(true), rules: Some(Rules { recommended: Some(true), all: None, a11y: None, complexity: None, correctness: None, nursery: None, performance: None, security: None, style: None, suspicious: None }), ignore: None }), javascript: Some(JavascriptConfiguration { formatter: Some(JavascriptFormatter { quote_style: Some(Single), quote_properties: None, trailing_comma: Some(None), semicolons: None }), globals: None, organize_imports: None }) }}
β”‚ β”‚ β”‚ β”œβ”€β”˜
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”œβ”€β”˜
β”‚ β”œβ”€4ms INFO rome_lsp::session Unregister capabilities "textDocument/formatting, workspace/didChangeWatchedFiles, workspace/didChangeConfiguration, textDocument/onTypeFormatting, textDocument/rangeFormatting, textDocument/rename"
β”‚ β”œβ”€6ms INFO rome_lsp::session Register capabilities "textDocument/formatting, workspace/didChangeWatchedFiles, workspace/didChangeConfiguration, textDocument/onTypeFormatting, textDocument/rangeFormatting"
β”‚ β”œβ”€β”rome_lsp::session::update_diagnostics{url=file:///c%3A/icons/bin/cli.mjs}
β”‚ β”œβ”€β”˜
β”‚ β”œβ”€β”rome_lsp::session::update_diagnostics{url=file:///c%3A/icons/rome.json}
β”‚ β”œβ”€β”rome_lsp::session::update_diagnostics{url=file:///c%3A/icons/package.json}
β”‚ β”œβ”€β”˜
β”‚ β”œβ”€β”˜
β”œβ”€β”˜
β”œβ”€β”rome_lsp::handlers::analysis::code_actions{uri=file:///c%3A/icons/rome.json, range=Range { start: Position { line: 19, character: 43 }, end: Position { line: 19, character: 51 } }, only=None, diagnostics=[]}
β”‚ β”œβ”€0ms DEBUG rome_lsp::handlers::analysis Pull actions result: PullActionsResult { actions: [] }
β”‚ β”œβ”€0ms DEBUG rome_lsp::handlers::analysis Suggested actions:
β”‚ β”‚ []
β”œβ”€β”˜
β”œβ”€β”rome_lsp::handlers::text_document::did_change{url=file:///c%3A/icons/rome.json, version=8}
β”‚ β”œβ”€β”rome_lsp::session::update_diagnostics{url=file:///c%3A/icons/rome.json}
β”‚ β”‚ β”œβ”€β”rome_json_parser::parse{}
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”œβ”€β”˜
β”œβ”€β”˜
β”œβ”€β”rome_lsp::handlers::text_document::did_change{url=file:///c%3A/icons/rome.json, version=9}
β”‚ β”œβ”€β”rome_lsp::session::update_diagnostics{url=file:///c%3A/icons/rome.json}
β”‚ β”‚ β”œβ”€β”rome_json_parser::parse{}
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”œβ”€β”˜
β”œβ”€β”˜
β”œβ”€β”rome_lsp::handlers::text_document::did_change{url=file:///c%3A/icons/rome.json, version=10}
β”‚ β”œβ”€β”rome_lsp::session::update_diagnostics{url=file:///c%3A/icons/rome.json}
β”‚ β”‚ β”œβ”€β”rome_json_parser::parse{}
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”œβ”€β”˜
β”œβ”€β”˜
β”œβ”€β”rome_lsp::handlers::analysis::code_actions{uri=file:///c%3A/icons/rome.json, range=Range { start: Position { line: 19, character: 41 }, end: Position { line: 19, character: 41 } }, only=None, diagnostics=[Diagnostic { range: Range { start: Position { line: 19, character: 41 }, end: Position { line: 19, character: 43 } }, severity: Some(Error), code: Some(String("parse")), code_description: None, source: Some("rome"), message: "Missing closing quote", related_information: Some([DiagnosticRelatedInformation { location: Location { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/c%3A/icons/rome.json", query: None, fragment: None }, range: Range { start: Position { line: 19, character: 43 }, end: Position { line: 20, character: 0 } } }, message: "" }]), tags: None, data: None }, Diagnostic { range: Range { start: Position { line: 19, character: 41 }, end: Position { line: 19, character: 43 } }, severity: Some(Error), code: Some(Number(258)), code_description: None, source: Some("json"), message: "Unexpected end of string.", related_information: None, tags: None, data: None }]}
β”‚ β”œβ”€0ms DEBUG rome_lsp::handlers::analysis Pull actions result: PullActionsResult { actions: [] }
β”‚ β”œβ”€0ms DEBUG rome_lsp::handlers::analysis Suggested actions:
β”‚ β”‚ []
β”œβ”€β”˜
β”œβ”€β”rome_lsp::handlers::text_document::did_change{url=file:///c%3A/icons/rome.json, version=11}
β”‚ β”œβ”€β”rome_lsp::session::update_diagnostics{url=file:///c%3A/icons/rome.json}
β”‚ β”‚ β”œβ”€β”rome_json_parser::parse{}
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”œβ”€β”˜
β”œβ”€β”˜
β”œβ”€β”rome_lsp::handlers::analysis::code_actions{uri=file:///c%3A/icons/rome.json, range=Range { start: Position { line: 19, character: 40 }, end: Position { line: 19, character: 40 } }, only=None, diagnostics=[Diagnostic { range: Range { start: Position { line: 19, character: 40 }, end: Position { line: 19, character: 42 } }, severity: Some(Error), code: Some(String("parse")), code_description: None, source: Some("rome"), message: "Missing closing quote", related_information: Some([DiagnosticRelatedInformation { location: Location { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/c%3A/icons/rome.json", query: None, fragment: None }, range: Range { start: Position { line: 19, character: 42 }, end: Position { line: 20, character: 0 } } }, message: "" }]), tags: None, data: None }, Diagnostic { range: Range { start: Position { line: 19, character: 40 }, end: Position { line: 19, character: 42 } }, severity: Some(Error), code: Some(Number(258)), code_description: None, source: Some("json"), message: "Unexpected end of string.", related_information: None, tags: None, data: None }]}
β”‚ β”œβ”€0ms DEBUG rome_lsp::handlers::analysis Pull actions result: PullActionsResult { actions: [] }
β”‚ β”œβ”€0ms DEBUG rome_lsp::handlers::analysis Suggested actions:
β”‚ β”‚ []
β”œβ”€β”˜
β”œβ”€β”rome_lsp::handlers::text_document::did_change{url=file:///c%3A/icons/rome.json, version=12}
β”‚ β”œβ”€β”rome_lsp::session::update_diagnostics{url=file:///c%3A/icons/rome.json}
β”‚ β”‚ β”œβ”€β”rome_json_parser::parse{}
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”œβ”€β”˜
β”œβ”€β”˜
β”œβ”€β”rome_lsp::handlers::analysis::code_actions{uri=file:///c%3A/icons/rome.json, range=Range { start: Position { line: 19, character: 40 }, end: Position { line: 19, character: 40 } }, only=None, diagnostics=[]}
β”‚ β”œβ”€0ms DEBUG rome_lsp::handlers::analysis Pull actions result: PullActionsResult { actions: [] }
β”‚ β”œβ”€0ms DEBUG rome_lsp::handlers::analysis Suggested actions:
β”‚ β”‚ []
β”œβ”€β”˜
β”œβ”€51452ms WARN tower_lsp Got a textDocument/didSave notification, but it is not implemented
β”œβ”€β”rome_lsp::server::did_change_watched_files{params=DidChangeWatchedFilesParams { changes: [FileEvent { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/c%3A/icons/rome.json", query: None, fragment: None }, typ: Changed }] }}
β”‚ β”œβ”€β”rome_lsp::session::load_workspace_settings{}
β”‚ β”‚ β”œβ”€β”rome_fs::fs::os::OsFileSystem::open_with_options{path="c:\\\icons\\rome.json", options=OpenOptions { read: true, write: false, truncate: false, create: false, create_new: false }}
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”‚ β”œβ”€β”rome_fs::fs::os::OsFile::read_to_string{}
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”‚ β”œβ”€β”rome_json_parser::parse{}
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”‚ β”œβ”€1ms INFO rome_lsp::session Loaded workspace settings: Configuration {
β”‚ β”‚ β”‚     schema: Some(
β”‚ β”‚ β”‚         "./node_modules/rome/configuration_schema.json",
β”‚ β”‚ β”‚     ),
β”‚ β”‚ β”‚     vcs: Some(
β”‚ β”‚ β”‚         VcsConfiguration {
β”‚ β”‚ β”‚             client_kind: Some(
β”‚ β”‚ β”‚                 Git,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             enabled: Some(
β”‚ β”‚ β”‚                 true,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             use_ignore_file: Some(
β”‚ β”‚ β”‚                 true,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             root: None,
β”‚ β”‚ β”‚         },
β”‚ β”‚ β”‚     ),
β”‚ β”‚ β”‚     files: Some(
β”‚ β”‚ β”‚         FilesConfiguration {
β”‚ β”‚ β”‚             max_size: None,
β”‚ β”‚ β”‚             ignore: Some(
β”‚ β”‚ β”‚                 StringSet(
β”‚ β”‚ β”‚                     {
β”‚ β”‚ β”‚                         ".devcontainer",
β”‚ β”‚ β”‚                         ".history",
β”‚ β”‚ β”‚                     },
β”‚ β”‚ β”‚                 ),
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚         },
β”‚ β”‚ β”‚     ),
β”‚ β”‚ β”‚     formatter: Some(
β”‚ β”‚ β”‚         FormatterConfiguration {
β”‚ β”‚ β”‚             enabled: Some(
β”‚ β”‚ β”‚                 true,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             format_with_errors: Some(
β”‚ β”‚ β”‚                 false,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             indent_style: Some(
β”‚ β”‚ β”‚                 Tab,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             indent_size: Some(
β”‚ β”‚ β”‚                 2,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             line_width: Some(
β”‚ β”‚ β”‚                 LineWidth(
β”‚ β”‚ β”‚                     120,
β”‚ β”‚ β”‚                 ),
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             ignore: None,
β”‚ β”‚ β”‚         },
β”‚ β”‚ β”‚     ),
β”‚ β”‚ β”‚     organize_imports: Some(
β”‚ β”‚ β”‚         OrganizeImports {
β”‚ β”‚ β”‚             enabled: Some(
β”‚ β”‚ β”‚                 false,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             ignore: None,
β”‚ β”‚ β”‚         },
β”‚ β”‚ β”‚     ),
β”‚ β”‚ β”‚     linter: Some(
β”‚ β”‚ β”‚         LinterConfiguration {
β”‚ β”‚ β”‚             enabled: Some(
β”‚ β”‚ β”‚                 true,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             rules: Some(
β”‚ β”‚ β”‚                 Rules {
β”‚ β”‚ β”‚                     recommended: Some(
β”‚ β”‚ β”‚                         true,
β”‚ β”‚ β”‚                     ),
β”‚ β”‚ β”‚                     all: None,
β”‚ β”‚ β”‚                     a11y: None,
β”‚ β”‚ β”‚                     complexity: None,
β”‚ β”‚ β”‚                     correctness: None,
β”‚ β”‚ β”‚                     nursery: None,
β”‚ β”‚ β”‚                     performance: None,
β”‚ β”‚ β”‚                     security: None,
β”‚ β”‚ β”‚                     style: None,
β”‚ β”‚ β”‚                     suspicious: None,
β”‚ β”‚ β”‚                 },
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             ignore: None,
β”‚ β”‚ β”‚         },
β”‚ β”‚ β”‚     ),
β”‚ β”‚ β”‚     javascript: Some(
β”‚ β”‚ β”‚         JavascriptConfiguration {
β”‚ β”‚ β”‚             formatter: Some(
β”‚ β”‚ β”‚                 JavascriptFormatter {
β”‚ β”‚ β”‚                     quote_style: Some(
β”‚ β”‚ β”‚                         Single,
β”‚ β”‚ β”‚                     ),
β”‚ β”‚ β”‚                     quote_properties: None,
β”‚ β”‚ β”‚                     trailing_comma: Some(
β”‚ β”‚ β”‚                         None,
β”‚ β”‚ β”‚                     ),
β”‚ β”‚ β”‚                     semicolons: None,
β”‚ β”‚ β”‚                 },
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             globals: None,
β”‚ β”‚ β”‚             organize_imports: None,
β”‚ β”‚ β”‚         },
β”‚ β”‚ β”‚     ),
β”‚ β”‚ β”‚ }
β”‚ β”‚ β”œβ”€β”rome_service::workspace::server::update_settings{params=UpdateSettingsParams { configuration: Configuration { schema: Some("./node_modules/rome/configuration_schema.json"), vcs: Some(VcsConfiguration { client_kind: Some(Git), enabled: Some(true), use_ignore_file: Some(true), root: None }), files: Some(FilesConfiguration { max_size: None, ignore: Some(StringSet({".devcontainer", ".history"})) }), formatter: Some(FormatterConfiguration { enabled: Some(true), format_with_errors: Some(false), indent_style: Some(Tab), indent_size: Some(2), line_width: Some(LineWidth(120)), ignore: None }), organize_imports: Some(OrganizeImports { enabled: Some(false), ignore: None }), linter: Some(LinterConfiguration { enabled: Some(true), rules: Some(Rules { recommended: Some(true), all: None, a11y: None, complexity: None, correctness: None, nursery: None, performance: None, security: None, style: None, suspicious: None }), ignore: None }), javascript: Some(JavascriptConfiguration { formatter: Some(JavascriptFormatter { quote_style: Some(Single), quote_properties: None, trailing_comma: Some(None), semicolons: None }), globals: None, organize_imports: None }) } }}
β”‚ β”‚ β”‚ β”œβ”€β”rome_service::settings::merge_with_configuration{configuration=Configuration { schema: Some("./node_modules/rome/configuration_schema.json"), vcs: Some(VcsConfiguration { client_kind: Some(Git), enabled: Some(true), use_ignore_file: Some(true), root: None }), files: Some(FilesConfiguration { max_size: None, ignore: Some(StringSet({".devcontainer", ".history"})) }), formatter: Some(FormatterConfiguration { enabled: Some(true), format_with_errors: Some(false), indent_style: Some(Tab), indent_size: Some(2), line_width: Some(LineWidth(120)), ignore: None }), organize_imports: Some(OrganizeImports { enabled: Some(false), ignore: None }), linter: Some(LinterConfiguration { enabled: Some(true), rules: Some(Rules { recommended: Some(true), all: None, a11y: None, complexity: None, correctness: None, nursery: None, performance: None, security: None, style: None, suspicious: None }), ignore: None }), javascript: Some(JavascriptConfiguration { formatter: Some(JavascriptFormatter { quote_style: Some(Single), quote_properties: None, trailing_comma: Some(None), semicolons: None }), globals: None, organize_imports: None }) }}
β”‚ β”‚ β”‚ β”œβ”€β”˜
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”œβ”€β”˜
β”‚ β”œβ”€4ms INFO rome_lsp::session Unregister capabilities "workspace/didChangeConfiguration, textDocument/rename, textDocument/formatting, textDocument/onTypeFormatting, textDocument/rangeFormatting, workspace/didChangeWatchedFiles"
β”‚ β”œβ”€7ms INFO rome_lsp::session Register capabilities "workspace/didChangeConfiguration, textDocument/formatting, textDocument/onTypeFormatting, textDocument/rangeFormatting, workspace/didChangeWatchedFiles"
β”‚ β”œβ”€β”rome_lsp::session::update_diagnostics{url=file:///c%3A/icons/bin/cli.mjs}
β”‚ β”œβ”€β”˜
β”‚ β”œβ”€β”rome_lsp::session::update_diagnostics{url=file:///c%3A/icons/rome.json}
β”‚ β”œβ”€β”rome_lsp::session::update_diagnostics{url=file:///c%3A/icons/package.json}
β”‚ β”œβ”€β”˜
β”‚ β”œβ”€β”˜
β”œβ”€β”˜
β”œβ”€β”rome_lsp::handlers::analysis::code_actions{uri=file:///c%3A/icons/rome.json, range=Range { start: Position { line: 19, character: 31 }, end: Position { line: 19, character: 40 } }, only=None, diagnostics=[]}
β”‚ β”œβ”€0ms DEBUG rome_lsp::handlers::analysis Pull actions result: PullActionsResult { actions: [] }
β”‚ β”œβ”€0ms DEBUG rome_lsp::handlers::analysis Suggested actions:
β”‚ β”‚ []
β”œβ”€β”˜
β”œβ”€β”rome_lsp::handlers::analysis::code_actions{uri=file:///c%3A/icons/rome.json, range=Range { start: Position { line: 19, character: 30 }, end: Position { line: 19, character: 40 } }, only=None, diagnostics=[]}
β”‚ β”œβ”€0ms DEBUG rome_lsp::handlers::analysis Pull actions result: PullActionsResult { actions: [] }
β”‚ β”œβ”€0ms DEBUG rome_lsp::handlers::analysis Suggested actions:
β”‚ β”‚ []
β”œβ”€β”˜
β”œβ”€β”rome_lsp::handlers::text_document::did_change{url=file:///c%3A/icons/rome.json, version=13}
β”‚ β”œβ”€β”rome_lsp::session::update_diagnostics{url=file:///c%3A/icons/rome.json}
β”‚ β”‚ β”œβ”€β”rome_json_parser::parse{}
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”œβ”€β”˜
β”œβ”€β”˜
β”œβ”€β”rome_lsp::handlers::text_document::did_change{url=file:///c%3A/icons/rome.json, version=14}
β”‚ β”œβ”€β”rome_lsp::session::update_diagnostics{url=file:///c%3A/icons/rome.json}
β”‚ β”‚ β”œβ”€β”rome_json_parser::parse{}
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”œβ”€β”˜
β”œβ”€β”˜
β”œβ”€β”rome_lsp::handlers::text_document::did_change{url=file:///c%3A/icons/rome.json, version=15}
β”‚ β”œβ”€β”rome_lsp::session::update_diagnostics{url=file:///c%3A/icons/rome.json}
β”‚ β”‚ β”œβ”€β”rome_json_parser::parse{}
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”œβ”€β”˜
β”œβ”€β”˜
β”œβ”€β”rome_lsp::handlers::analysis::code_actions{uri=file:///c%3A/icons/rome.json, range=Range { start: Position { line: 19, character: 28 }, end: Position { line: 19, character: 28 } }, only=None, diagnostics=[]}
β”‚ β”œβ”€0ms DEBUG rome_lsp::handlers::analysis Pull actions result: PullActionsResult { actions: [] }
β”‚ β”œβ”€0ms DEBUG rome_lsp::handlers::analysis Suggested actions:
β”‚ β”‚ []
β”œβ”€β”˜
β”œβ”€97746ms WARN tower_lsp Got a textDocument/didSave notification, but it is not implemented
β”œβ”€97862ms WARN tower_lsp Got a textDocument/didSave notification, but it is not implemented
β”œβ”€β”rome_lsp::server::did_change_watched_files{params=DidChangeWatchedFilesParams { changes: [FileEvent { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/c%3A/icons/rome.json", query: None, fragment: None }, typ: Changed }, FileEvent { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/c%3A/icons/rome.json", query: None, fragment: None }, typ: Changed }] }}
β”‚ β”œβ”€β”rome_lsp::session::load_workspace_settings{}
β”‚ β”‚ β”œβ”€β”rome_fs::fs::os::OsFileSystem::open_with_options{path="c:\\\icons\\rome.json", options=OpenOptions { read: true, write: false, truncate: false, create: false, create_new: false }}
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”‚ β”œβ”€β”rome_fs::fs::os::OsFile::read_to_string{}
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”‚ β”œβ”€β”rome_json_parser::parse{}
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”‚ β”œβ”€0ms INFO rome_lsp::session Loaded workspace settings: Configuration {
β”‚ β”‚ β”‚     schema: Some(
β”‚ β”‚ β”‚         "./node_modules/rome/configuration_schema.json",
β”‚ β”‚ β”‚     ),
β”‚ β”‚ β”‚     vcs: Some(
β”‚ β”‚ β”‚         VcsConfiguration {
β”‚ β”‚ β”‚             client_kind: Some(
β”‚ β”‚ β”‚                 Git,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             enabled: Some(
β”‚ β”‚ β”‚                 true,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             use_ignore_file: Some(
β”‚ β”‚ β”‚                 true,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             root: None,
β”‚ β”‚ β”‚         },
β”‚ β”‚ β”‚     ),
β”‚ β”‚ β”‚     files: Some(
β”‚ β”‚ β”‚         FilesConfiguration {
β”‚ β”‚ β”‚             max_size: None,
β”‚ β”‚ β”‚             ignore: Some(
β”‚ β”‚ β”‚                 StringSet(
β”‚ β”‚ β”‚                     {
β”‚ β”‚ β”‚                         ".devcontainer",
β”‚ β”‚ β”‚                     },
β”‚ β”‚ β”‚                 ),
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚         },
β”‚ β”‚ β”‚     ),
β”‚ β”‚ β”‚     formatter: Some(
β”‚ β”‚ β”‚         FormatterConfiguration {
β”‚ β”‚ β”‚             enabled: Some(
β”‚ β”‚ β”‚                 true,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             format_with_errors: Some(
β”‚ β”‚ β”‚                 false,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             indent_style: Some(
β”‚ β”‚ β”‚                 Tab,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             indent_size: Some(
β”‚ β”‚ β”‚                 2,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             line_width: Some(
β”‚ β”‚ β”‚                 LineWidth(
β”‚ β”‚ β”‚                     120,
β”‚ β”‚ β”‚                 ),
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             ignore: None,
β”‚ β”‚ β”‚         },
β”‚ β”‚ β”‚     ),
β”‚ β”‚ β”‚     organize_imports: Some(
β”‚ β”‚ β”‚         OrganizeImports {
β”‚ β”‚ β”‚             enabled: Some(
β”‚ β”‚ β”‚                 false,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             ignore: None,
β”‚ β”‚ β”‚         },
β”‚ β”‚ β”‚     ),
β”‚ β”‚ β”‚     linter: Some(
β”‚ β”‚ β”‚         LinterConfiguration {
β”‚ β”‚ β”‚             enabled: Some(
β”‚ β”‚ β”‚                 true,
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             rules: Some(
β”‚ β”‚ β”‚                 Rules {
β”‚ β”‚ β”‚                     recommended: Some(
β”‚ β”‚ β”‚                         true,
β”‚ β”‚ β”‚                     ),
β”‚ β”‚ β”‚                     all: None,
β”‚ β”‚ β”‚                     a11y: None,
β”‚ β”‚ β”‚                     complexity: None,
β”‚ β”‚ β”‚                     correctness: None,
β”‚ β”‚ β”‚                     nursery: None,
β”‚ β”‚ β”‚                     performance: None,
β”‚ β”‚ β”‚                     security: None,
β”‚ β”‚ β”‚                     style: None,
β”‚ β”‚ β”‚                     suspicious: None,
β”‚ β”‚ β”‚                 },
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             ignore: None,
β”‚ β”‚ β”‚         },
β”‚ β”‚ β”‚     ),
β”‚ β”‚ β”‚     javascript: Some(
β”‚ β”‚ β”‚         JavascriptConfiguration {
β”‚ β”‚ β”‚             formatter: Some(
β”‚ β”‚ β”‚                 JavascriptFormatter {
β”‚ β”‚ β”‚                     quote_style: Some(
β”‚ β”‚ β”‚                         Single,
β”‚ β”‚ β”‚                     ),
β”‚ β”‚ β”‚                     quote_properties: None,
β”‚ β”‚ β”‚                     trailing_comma: Some(
β”‚ β”‚ β”‚                         None,
β”‚ β”‚ β”‚                     ),
β”‚ β”‚ β”‚                     semicolons: None,
β”‚ β”‚ β”‚                 },
β”‚ β”‚ β”‚             ),
β”‚ β”‚ β”‚             globals: None,
β”‚ β”‚ β”‚             organize_imports: None,
β”‚ β”‚ β”‚         },
β”‚ β”‚ β”‚     ),
β”‚ β”‚ β”‚ }
β”‚ β”‚ β”œβ”€β”rome_service::workspace::server::update_settings{params=UpdateSettingsParams { configuration: Configuration { schema: Some("./node_modules/rome/configuration_schema.json"), vcs: Some(VcsConfiguration { client_kind: Some(Git), enabled: Some(true), use_ignore_file: Some(true), root: None }), files: Some(FilesConfiguration { max_size: None, ignore: Some(StringSet({".devcontainer"})) }), formatter: Some(FormatterConfiguration { enabled: Some(true), format_with_errors: Some(false), indent_style: Some(Tab), indent_size: Some(2), line_width: Some(LineWidth(120)), ignore: None }), organize_imports: Some(OrganizeImports { enabled: Some(false), ignore: None }), linter: Some(LinterConfiguration { enabled: Some(true), rules: Some(Rules { recommended: Some(true), all: None, a11y: None, complexity: None, correctness: None, nursery: None, performance: None, security: None, style: None, suspicious: None }), ignore: None }), javascript: Some(JavascriptConfiguration { formatter: Some(JavascriptFormatter { quote_style: Some(Single), quote_properties: None, trailing_comma: Some(None), semicolons: None }), globals: None, organize_imports: None }) } }}
β”‚ β”‚ β”‚ β”œβ”€β”rome_service::settings::merge_with_configuration{configuration=Configuration { schema: Some("./node_modules/rome/configuration_schema.json"), vcs: Some(VcsConfiguration { client_kind: Some(Git), enabled: Some(true), use_ignore_file: Some(true), root: None }), files: Some(FilesConfiguration { max_size: None, ignore: Some(StringSet({".devcontainer"})) }), formatter: Some(FormatterConfiguration { enabled: Some(true), format_with_errors: Some(false), indent_style: Some(Tab), indent_size: Some(2), line_width: Some(LineWidth(120)), ignore: None }), organize_imports: Some(OrganizeImports { enabled: Some(false), ignore: None }), linter: Some(LinterConfiguration { enabled: Some(true), rules: Some(Rules { recommended: Some(true), all: None, a11y: None, complexity: None, correctness: None, nursery: None, performance: None, security: None, style: None, suspicious: None }), ignore: None }), javascript: Some(JavascriptConfiguration { formatter: Some(JavascriptFormatter { quote_style: Some(Single), quote_properties: None, trailing_comma: Some(None), semicolons: None }), globals: None, organize_imports: None }) }}
β”‚ β”‚ β”‚ β”œβ”€β”˜
β”‚ β”‚ β”œβ”€β”˜
β”‚ β”œβ”€β”˜
β”‚ β”œβ”€1ms INFO rome_lsp::session Unregister capabilities "textDocument/onTypeFormatting, textDocument/formatting, workspace/didChangeWatchedFiles, workspace/didChangeConfiguration, textDocument/rangeFormatting, textDocument/rename"
β”‚ β”œβ”€3ms INFO rome_lsp::session Register capabilities "textDocument/onTypeFormatting, textDocument/formatting, workspace/didChangeWatchedFiles, workspace/didChangeConfiguration, textDocument/rangeFormatting"
β”‚ β”œβ”€β”rome_lsp::session::update_diagnostics{url=file:///c%3A/icons/bin/cli.mjs}
β”‚ β”œβ”€β”˜
β”‚ β”œβ”€β”rome_lsp::session::update_diagnostics{url=file:///c%3A/icons/rome.json}
β”‚ β”œβ”€β”rome_lsp::session::update_diagnostics{url=file:///c%3A/icons/package.json}
β”‚ β”œβ”€β”˜
β”‚ β”œβ”€β”˜
β”œβ”€β”˜
β”œβ”€β”rome_lsp::server::initialize{capabilities=ClientCapabilities { workspace: None, text_document: None, window: None, general: None, experimental: None }, client_info=ClientInfo { name: "rome_service", version: Some("12.1.2") }}
β”‚ β”œβ”€0ms INFO rome_lsp::server Starting Rome Language Server...
β”œβ”€β”˜
β”œβ”€β”rome_lsp::server::rome/rage{params=RageParams}
β”œβ”€β”˜

What happened?

Using the rome ci . command with the following .gitignore would still lint and format check all files in .idea and .history folders

# IDEs
*.code-workspace
.idea/
.history/
*.local

The same files are no longer parsed if the trailing slash is removed

# IDEs
*.code-workspace
.idea
.history
*.local

Expected result

Just like git, rome should properly handle .gitignore patters ending with a /

Code of Conduct

ematipico commented 1 year ago

Is there a chance to have a minimal repo to reproduce the issue?

Th3S4mur41 commented 1 year ago

Here you go: https://github.com/Th3S4mur41/demo-rome

Just run npm run lint to reproduce the issue.

Btw. I was only able to reproduce the issue with the demo on my Windows 11 machine. It's working as expected in Codespaces (Linux)