Skip to content

feat: forward user-provided initializationOptions to pasls#1544

Open
zen010101 wants to merge 1 commit into
oraios:mainfrom
zen010101:feat/pascal-forward-init-options
Open

feat: forward user-provided initializationOptions to pasls#1544
zen010101 wants to merge 1 commit into
oraios:mainfrom
zen010101:feat/pascal-forward-init-options

Conversation

@zen010101

Copy link
Copy Markdown
Contributor

What

Forward user-provided initializationOptions to pasls, so users can pass
arbitrary pasls options (e.g. fpcOptions) via Serena's
ls_specific_settings["pascal"]["initializationOptions"].

Why

Serena currently sends only a hard-coded subset of initializationOptions
to pasls. Editor LSP clients (Sublime LSP, VSCode) let users forward
arbitrary options. Without this, there is no way to tell pasls about
third-party unit/include search paths (e.g. mORMot), which breaks symbol
resolution for projects that depend on external FPC libraries.

Change

  • Read initializationOptions from ls_specific_settings["pascal"].
  • Merge them into the initialize params, user values taking precedence.
  • _get_initialize_params becomes an instance method to access the override.

Compatibility

Backward compatible: with no initializationOptions configured, behavior
is unchanged.

Mirror how editor LSP clients (Sublime LSP, VSCode) let users forward
arbitrary options to pasls. Read initializationOptions from
ls_specific_settings["pascal"]["initializationOptions"] and merge them
into the initialize params, with user-provided values taking precedence.

This enables forwarding options such as fpcOptions for third-party unit
and include search paths (e.g. mORMot) instead of being limited to a
hard-coded subset. _get_initialize_params becomes an instance method so
it can read the configured override.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant