diff --git a/CHANGELOG.md b/CHANGELOG.md index 47ad48ed5..9b4da8023 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ ## Changelog +### `jupyter-lsp 2.3.1` + +- maintenance: + - updated config schema for pylsp to match latest upstream schema ([#1156](https://github.com/jupyter-lsp/jupyterlab-lsp/issues/1156)) + ### `jupyter-lsp 2.3.0` - features: diff --git a/python_packages/jupyter_lsp/jupyter_lsp/specs/config/pylsp.schema.json b/python_packages/jupyter_lsp/jupyter_lsp/specs/config/pylsp.schema.json index d477dc4f4..a0caa38aa 100644 --- a/python_packages/jupyter_lsp/jupyter_lsp/specs/config/pylsp.schema.json +++ b/python_packages/jupyter_lsp/jupyter_lsp/specs/config/pylsp.schema.json @@ -1,19 +1,34 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", "title": "Python Language Server Configuration", + "description": "This server can be configured using the `workspace/didChangeConfiguration` method. Each configuration option is described below. Note, a value of `null` means that we do not set a value and thus use the plugin's default value.", "type": "object", "properties": { "pylsp.configurationSources": { "type": "array", - "default": ["pycodestyle"], + "default": [ + "pycodestyle" + ], "description": "List of configuration sources to use.", "items": { "type": "string", - "enum": ["pycodestyle", "pyflakes"] + "enum": [ + "pycodestyle", + "flake8" + ] }, "uniqueItems": true }, + "pylsp.plugins.autopep8.enabled": { + "type": "boolean", + "default": true, + "description": "Enable or disable the plugin (disabling required to use `yapf`)." + }, "pylsp.plugins.flake8.config": { - "type": ["string", "null"], + "type": [ + "string", + "null" + ], "default": null, "description": "Path to the config file that will be the authoritative config source." }, @@ -30,18 +45,40 @@ }, "description": "List of files or directories to exclude." }, + "pylsp.plugins.flake8.extendIgnore": { + "type": "array", + "default": [], + "items": { + "type": "string" + }, + "description": "List of errors and warnings to append to ignore list." + }, + "pylsp.plugins.flake8.extendSelect": { + "type": "array", + "default": [], + "items": { + "type": "string" + }, + "description": "List of errors and warnings to append to select list." + }, "pylsp.plugins.flake8.executable": { "type": "string", "default": "flake8", "description": "Path to the flake8 executable." }, "pylsp.plugins.flake8.filename": { - "type": ["string", "null"], + "type": [ + "string", + "null" + ], "default": null, "description": "Only check for filenames matching the patterns in this list." }, "pylsp.plugins.flake8.hangClosing": { - "type": ["boolean", "null"], + "type": [ + "boolean", + "null" + ], "default": null, "description": "Hang closing bracket instead of matching indentation of opening bracket's line." }, @@ -53,18 +90,31 @@ }, "description": "List of errors and warnings to ignore (or skip)." }, + "pylsp.plugins.flake8.maxComplexity": { + "type": "integer", + "default": null, + "description": "Maximum allowed complexity threshold." + }, "pylsp.plugins.flake8.maxLineLength": { - "type": ["integer", "null"], + "type": [ + "integer", + "null" + ], "default": null, "description": "Maximum allowed line length for the entirety of this run." }, "pylsp.plugins.flake8.indentSize": { - "type": ["integer", "null"], + "type": [ + "integer", + "null" + ], "default": null, "description": "Set indentation spaces." }, "pylsp.plugins.flake8.perFileIgnores": { - "type": ["array"], + "type": [ + "array" + ], "default": [], "items": { "type": "string" @@ -72,7 +122,10 @@ "description": "A pairing of filenames and violation codes that defines which violations to ignore in a particular file, for example: `[\"file_path.py:W305,W304\"]`)." }, "pylsp.plugins.flake8.select": { - "type": ["array", "null"], + "type": [ + "array", + "null" + ], "default": null, "items": { "type": "string" @@ -80,6 +133,16 @@ "uniqueItems": true, "description": "List of errors and warnings to enable." }, + "pylsp.plugins.jedi.auto_import_modules": { + "type": "array", + "default": [ + "numpy" + ], + "items": { + "type": "string" + }, + "description": "List of module names for jedi.settings.auto_import_modules." + }, "pylsp.plugins.jedi.extra_paths": { "type": "array", "default": [], @@ -88,13 +151,24 @@ }, "description": "Define extra paths for jedi.Script." }, + "pylsp.plugins.jedi.prioritize_extra_paths": { + "type": "boolean", + "default": false, + "description": "Whether to place extra_paths at the beginning (true) or end (false) of `sys.path`" + }, "pylsp.plugins.jedi.env_vars": { - "type": ["object", "null"], + "type": [ + "object", + "null" + ], "default": null, "description": "Define environment variables for jedi.Script and Jedi.names." }, "pylsp.plugins.jedi.environment": { - "type": ["string", "null"], + "type": [ + "string", + "null" + ], "default": null, "description": "Define environment for jedi.Script and Jedi.names." }, @@ -110,9 +184,14 @@ }, "pylsp.plugins.jedi_completion.include_class_objects": { "type": "boolean", - "default": true, + "default": false, "description": "Adds class objects as a separate completion item." }, + "pylsp.plugins.jedi_completion.include_function_objects": { + "type": "boolean", + "default": false, + "description": "Adds function objects as a separate completion item." + }, "pylsp.plugins.jedi_completion.fuzzy": { "type": "boolean", "default": false, @@ -124,7 +203,7 @@ "description": "Resolve documentation and detail eagerly." }, "pylsp.plugins.jedi_completion.resolve_at_most": { - "type": "number", + "type": "integer", "default": 25, "description": "How many labels and snippets (at most) should be resolved?" }, @@ -133,7 +212,12 @@ "items": { "type": "string" }, - "default": ["pandas", "numpy", "tensorflow", "matplotlib"], + "default": [ + "pandas", + "numpy", + "tensorflow", + "matplotlib" + ], "description": "Modules for which labels and snippets should be cached." }, "pylsp.plugins.jedi_definition.enabled": { @@ -151,6 +235,11 @@ "default": true, "description": "If follow_imports is True will decide if it follow builtin imports." }, + "pylsp.plugins.jedi_definition.follow_builtin_definitions": { + "type": "boolean", + "default": true, + "description": "Follow builtin and extension definitions to stubs." + }, "pylsp.plugins.jedi_hover.enabled": { "type": "boolean", "default": true, @@ -181,13 +270,18 @@ "default": true, "description": "If True includes symbols imported from other libraries." }, + "pylsp.plugins.jedi_type_definition.enabled": { + "type": "boolean", + "default": true, + "description": "Enable or disable the plugin." + }, "pylsp.plugins.mccabe.enabled": { "type": "boolean", "default": true, "description": "Enable or disable the plugin." }, "pylsp.plugins.mccabe.threshold": { - "type": "number", + "type": "integer", "default": 15, "description": "The minimum threshold that triggers warnings about cyclomatic complexity." }, @@ -229,8 +323,11 @@ "description": "When parsing directories, only check filenames matching these patterns." }, "pylsp.plugins.pycodestyle.select": { - "type": "array", - "default": [], + "type": [ + "array", + "null" + ], + "default": null, "items": { "type": "string" }, @@ -247,17 +344,26 @@ "description": "Ignore errors and warnings" }, "pylsp.plugins.pycodestyle.hangClosing": { - "type": ["boolean", "null"], + "type": [ + "boolean", + "null" + ], "default": null, "description": "Hang closing bracket instead of matching indentation of opening bracket's line." }, "pylsp.plugins.pycodestyle.maxLineLength": { - "type": ["number", "null"], + "type": [ + "integer", + "null" + ], "default": null, "description": "Set maximum allowed line length." }, "pylsp.plugins.pycodestyle.indentSize": { - "type": ["integer", "null"], + "type": [ + "integer", + "null" + ], "default": null, "description": "Set indentation spaces." }, @@ -267,9 +373,17 @@ "description": "Enable or disable the plugin." }, "pylsp.plugins.pydocstyle.convention": { - "type": ["string", "null"], + "type": [ + "string", + "null" + ], "default": null, - "enum": ["pep257", "numpy", null], + "enum": [ + "pep257", + "numpy", + "google", + null + ], "description": "Choose the basic list of checked errors by specifying an existing convention." }, "pylsp.plugins.pydocstyle.addIgnore": { @@ -300,8 +414,11 @@ "description": "Ignore errors and warnings" }, "pylsp.plugins.pydocstyle.select": { - "type": "array", - "default": [], + "type": [ + "array", + "null" + ], + "default": null, "items": { "type": "string" }, @@ -338,10 +455,33 @@ "description": "Arguments to pass to pylint." }, "pylsp.plugins.pylint.executable": { - "type": ["string", "null"], + "type": [ + "string", + "null" + ], "default": null, "description": "Executable to run pylint with. Enabling this will run pylint on unsaved files via stdin. Can slow down workflow. Only works with python3." }, + "pylsp.plugins.rope_autoimport.enabled": { + "type": "boolean", + "default": false, + "description": "Enable or disable autoimport. If false, neither completions nor code actions are enabled. If true, the respective features can be enabled or disabled individually." + }, + "pylsp.plugins.rope_autoimport.completions.enabled": { + "type": "boolean", + "default": true, + "description": "Enable or disable autoimport completions." + }, + "pylsp.plugins.rope_autoimport.code_actions.enabled": { + "type": "boolean", + "default": true, + "description": "Enable or disable autoimport code actions (e.g. for quick fixes)." + }, + "pylsp.plugins.rope_autoimport.memory": { + "type": "boolean", + "default": false, + "description": "Make the autoimport database memory only. Drastically increases startup time." + }, "pylsp.plugins.rope_completion.enabled": { "type": "boolean", "default": false, @@ -358,18 +498,42 @@ "description": "Enable or disable the plugin." }, "pylsp.rope.extensionModules": { - "type": ["null", "string"], + "type": [ + "string", + "null" + ], "default": null, "description": "Builtin and c-extension modules that are allowed to be imported and inspected by rope." }, "pylsp.rope.ropeFolder": { - "type": ["null", "array"], + "type": [ + "array", + "null" + ], "default": null, "items": { "type": "string" }, "uniqueItems": true, "description": "The name of the folder in which rope stores project configurations and data. Pass `null` for not using such a folder at all." + }, + "pylsp.signature.formatter": { + "type": [ + "string", + "null" + ], + "enum": [ + "black", + "ruff", + null + ], + "default": "black", + "description": "Formatter to use for reformatting signatures in docstrings." + }, + "pylsp.signature.line_length": { + "type": "number", + "default": 88, + "description": "Maximum line length in signatures." } } }