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

🐛 VCS doesn't properly handle .gitignore patterns ending with a / #4528

Open
1 task done
Th3S4mur41 opened this issue May 23, 2023 · 2 comments
Open
1 task done
Labels
S-To triage Status: user report of a possible bug that needs to be triaged

Comments

@Th3S4mur41
Copy link

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

  • I agree to follow Rome's Code of Conduct
@Th3S4mur41 Th3S4mur41 added the S-To triage Status: user report of a possible bug that needs to be triaged label May 23, 2023
@ematipico
Copy link
Contributor

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

@Th3S4mur41
Copy link
Author

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)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
S-To triage Status: user report of a possible bug that needs to be triaged
Projects
None yet
Development

No branches or pull requests

2 participants