perl-parser 0.12.2

Native Perl parser (v3) — recursive descent with Tree-sitter-compatible AST, semantic analysis, and LSP provider engine
Documentation
# LSP Feature Catalog (vendored fallback)
# This file is a vendored copy of the workspace root features.toml.
# Used only when building the crate outside the workspace.

[meta]
version = "0.8.5"
lsp_version = "3.18"
compliance_percent = 93  # Added prepareRename, codeAction resolve, inlineValues, moniker, documentColor

# Text Document Features

[[feature]]
id = "lsp.completion"
spec = "LSP 3.0"
area = "text_document"
maturity = "ga"
advertised = true
tests = ["tests/lsp_completion_tests.rs"]
description = "Code completion with 150+ built-in functions"

[[feature]]
id = "lsp.hover"
spec = "LSP 3.0"
area = "text_document"
maturity = "ga"
advertised = true
tests = ["tests/lsp_hover_tests.rs"]
description = "Hover information with documentation"

[[feature]]
id = "lsp.signature_help"
spec = "LSP 3.0"
area = "text_document"
maturity = "ga"
advertised = true
tests = ["tests/lsp_signature_help_tests.rs"]
description = "Signature help with parameter hints"

[[feature]]
id = "lsp.definition"
spec = "LSP 3.0"
area = "text_document"
maturity = "ga"
advertised = true
tests = ["tests/lsp_definition_tests.rs"]
description = "Go to definition"

[[feature]]
id = "lsp.declaration"
spec = "LSP 3.14"
area = "text_document"
maturity = "ga"
advertised = true
tests = ["tests/lsp_definition_tests.rs"]
description = "Go to declaration"

[[feature]]
id = "lsp.references"
spec = "LSP 3.0"
area = "text_document"
maturity = "ga"
advertised = true
tests = ["tests/lsp_references_tests.rs"]
description = "Find references across workspace"

[[feature]]
id = "lsp.document_symbol"
spec = "LSP 3.0"
area = "text_document"
maturity = "ga"
advertised = true
tests = ["tests/lsp_symbols_tests.rs"]
description = "Document symbols with hierarchy"

[[feature]]
id = "lsp.code_action"
spec = "LSP 3.0"
area = "text_document"
maturity = "ga"
advertised = true
tests = ["tests/lsp_code_actions_tests.rs"]
description = "Code actions and quick fixes"

[[feature]]
id = "lsp.code_lens"
spec = "LSP 3.0"
area = "text_document"
maturity = "ga"
advertised = true
tests = ["tests/lsp_codelens_tests.rs"]
description = "Code lens with reference counts for subroutines and packages"

[[feature]]
id = "lsp.formatting"
spec = "LSP 3.0"
area = "text_document"
maturity = "ga"
advertised = true
tests = ["tests/lsp_formatting_tests.rs"]
description = "Document formatting with Perl::Tidy"

[[feature]]
id = "lsp.range_formatting"
spec = "LSP 3.0"
area = "text_document"
maturity = "ga"
advertised = true
tests = ["tests/lsp_formatting_tests.rs"]
description = "Range formatting"

[[feature]]
id = "lsp.on_type_formatting"
spec = "LSP 3.0"
area = "text_document"
maturity = "ga"
advertised = true
tests = ["tests/lsp_on_type_formatting_tests.rs"]
description = "On-type formatting with auto-indent"

[[feature]]
id = "lsp.rename"
spec = "LSP 3.0"
area = "text_document"
maturity = "ga"
advertised = true
tests = ["tests/lsp_rename_tests.rs"]
description = "Rename symbol across files"

[[feature]]
id = "lsp.document_link"
spec = "LSP 3.0"
area = "text_document"
maturity = "ga"
advertised = true
tests = ["tests/lsp_document_link_tests.rs"]
description = "Document links to modules and docs"

[[feature]]
id = "lsp.folding_range"
spec = "LSP 3.0"
area = "text_document"
maturity = "ga"
advertised = true
tests = ["tests/lsp_folding_tests.rs"]
description = "Folding ranges with fallback"

[[feature]]
id = "lsp.selection_range"
spec = "LSP 3.15"
area = "text_document"
maturity = "ga"
advertised = true
tests = ["tests/lsp_selection_range_tests.rs"]
description = "Smart selection expansion"

[[feature]]
id = "lsp.semantic_tokens"
spec = "LSP 3.16"
area = "text_document"
maturity = "ga"
advertised = true
tests = ["tests/lsp_semantic_tokens_tests.rs"]
description = "Enhanced syntax highlighting"

[[feature]]
id = "lsp.inlay_hint"
spec = "LSP 3.17"
area = "text_document"
maturity = "ga"
advertised = true
tests = ["tests/lsp_inlay_hints_tests.rs"]
description = "Parameter names and type hints"

[[feature]]
id = "lsp.type_hierarchy"
spec = "LSP 3.17"
area = "text_document"
maturity = "ga"
advertised = true
tests = ["tests/lsp_type_hierarchy_tests.rs"]
description = "Type hierarchy for classes/roles"

[[feature]]
id = "lsp.call_hierarchy"
spec = "LSP 3.16"
area = "text_document"
maturity = "preview"
advertised = true
tests = ["tests/lsp_call_hierarchy_tests.rs"]
description = "Call hierarchy navigation"

[[feature]]
id = "lsp.linked_editing_range"
spec = "LSP 3.16"
area = "text_document"
maturity = "ga"
advertised = true
tests = ["tests/lsp_linked_editing_tests.rs"]
description = "Linked editing for paired delimiters ((), [], {}, <>, quotes)"

[[feature]]
id = "lsp.pull_diagnostics"
spec = "LSP 3.17"
area = "text_document"
maturity = "ga"
advertised = true
tests = ["tests/lsp_pull_diagnostics_tests.rs"]
description = "Pull model diagnostics"

[[feature]]
id = "lsp.inline_completion"
spec = "LSP 3.18"
area = "text_document"
maturity = "preview"
advertised = true
tests = ["tests/lsp_inline_completion_tests.rs"]
description = "Deterministic inline completions (non-AI, via experimental)"

[[feature]]
id = "lsp.type_definition"
spec = "LSP 3.6"
area = "text_document"
maturity = "ga"
advertised = true
tests = ["tests/lsp_type_definition_tests.rs"]
description = "Go to type definition (with multi-file support)"

[[feature]]
id = "lsp.implementation"
spec = "LSP 3.6"
area = "text_document"
maturity = "ga"
advertised = true
tests = ["tests/lsp_implementation_tests.rs"]
description = "Go to implementation (with workspace index)"

[[feature]]
id = "lsp.document_color"
spec = "LSP 3.6"
area = "text_document"
maturity = "planned"
advertised = false
tests = []
description = "Color decorators"


# Workspace Features

[[feature]]
id = "lsp.workspace_symbol"
spec = "LSP 3.0"
area = "workspace"
maturity = "ga"
advertised = true
tests = ["tests/lsp_workspace_symbol_tests.rs"]
description = "Search symbols across workspace"

[[feature]]
id = "lsp.workspace_diagnostics"
spec = "LSP 3.17"
area = "workspace"
maturity = "ga"
advertised = true
tests = ["tests/lsp_pull_diagnostics_tests.rs"]
description = "Workspace-wide pull diagnostics"

[[feature]]
id = "lsp.execute_command"
spec = "LSP 3.0"
area = "workspace"
maturity = "ga"
advertised = true
tests = ["tests/lsp_execute_command_tests.rs"]
description = "Execute commands (Perl::Critic, etc)"

[[feature]]
id = "lsp.workspace_folders"
spec = "LSP 3.6"
area = "workspace"
maturity = "ga"
advertised = true
tests = ["tests/lsp_workspace_tests.rs"]
description = "Multi-root workspace support"

[[feature]]
id = "lsp.file_operations"
spec = "LSP 3.16"
area = "workspace"
maturity = "ga"
advertised = true
tests = ["tests/lsp_file_operations_tests.rs"]
description = "File rename/create/delete tracking"

[[feature]]
id = "lsp.workspace_edit"
spec = "LSP 3.0"
area = "workspace"
maturity = "experimental"
advertised = false
tests = []
description = "Apply workspace-wide edits"

[[feature]]
id = "lsp.moniker"
spec = "LSP 3.16"
area = "workspace"
maturity = "planned"
advertised = false
tests = []
description = "Cross-project symbol identity"

# Window Features

[[feature]]
id = "lsp.progress"
spec = "LSP 3.0"
area = "window"
maturity = "ga"
advertised = true
tests = ["tests/lsp_progress_tests.rs"]
description = "Progress reporting"

[[feature]]
id = "lsp.show_message"
spec = "LSP 3.0"
area = "window"
maturity = "ga"
advertised = true
tests = []
description = "Show messages to user"

[[feature]]
id = "lsp.log_message"
spec = "LSP 3.0"
area = "window"
maturity = "ga"
advertised = true
tests = []
description = "Log messages"

[[feature]]
id = "lsp.work_done_progress"
spec = "LSP 3.15"
area = "window"
maturity = "experimental"
advertised = false
tests = []
description = "Detailed work progress"

# Notebook Features

[[feature]]
id = "lsp.notebook_document_sync"
spec = "LSP 3.17"
area = "notebook"
maturity = "planned"
advertised = false
tests = []
description = "Notebook document synchronization"

[[feature]]
id = "lsp.notebook_cell_execution"
spec = "LSP 3.17"
area = "notebook"
maturity = "planned"
advertised = false
tests = []
description = "Execute notebook cells"

# Debug Features (DAP)

[[feature]]
id = "dap.inline_values"
spec = "DAP 1.0"
area = "debug"
maturity = "planned"
advertised = false
tests = []
description = "Inline variable values while debugging"

[[feature]]
id = "dap.breakpoints"
spec = "DAP 1.0"
area = "debug"
maturity = "planned"
advertised = false
tests = []
description = "Breakpoint support"