diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-anakin-language-server.spec | 413 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 415 insertions, 0 deletions
@@ -0,0 +1 @@ +/anakin-language-server-1.16.tar.gz diff --git a/python-anakin-language-server.spec b/python-anakin-language-server.spec new file mode 100644 index 0000000..5f06477 --- /dev/null +++ b/python-anakin-language-server.spec @@ -0,0 +1,413 @@ +%global _empty_manifest_terminate_build 0 +Name: python-anakin-language-server +Version: 1.16 +Release: 1 +Summary: Yet another Jedi Python language server +License: GNU General Public License v3 (GPLv3) +URL: https://github.com/muffinmad/anakin-language-server +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/15/59/87d77aff322ae8fa2ff29499f84ff81747f96e64029ce4ac7717e177c0fe/anakin-language-server-1.16.tar.gz +BuildArch: noarch + +Requires: python3-jedi +Requires: python3-pygls +Requires: python3-pyflakes +Requires: python3-pycodestyle +Requires: python3-yapf + +%description +# anakin-language-server +Yet another Jedi Python language server + +## Requirements + +- Python >= 3.6 +- pygls >= 0.10.2,<0.11 +- Jedi >= 0.18 +- pyflakes ~= 2.2 +- pycodestyle ~= 2.5 +- yapf ~=0.30 + +## Optional requirements +- mypy + +## Implemented features + +- `textDocument/completion` +- `textDocument/hover` +- `textDocument/signatureHelp` +- `textDocument/definition` +- `textDocument/references` +- `textDocument/publishDiagnostics` +- `textDocument/documentSymbol` +- `textDocument/codeAction` ([Inline variable](https://jedi.readthedocs.io/en/latest/docs/api.html#jedi.Script.inline)) +- `textDocument/formatting` +- `textDocument/rangeFormatting` +- `textDocument/rename` +- `textDocument/documentHighlight` + +## Initialization option + +- `venv` - path to virtualenv. This option will be passed to Jedi's [create\_environment](https://jedi.readthedocs.io/en/latest/docs/api.html#jedi.create_environment). + +Also one can set `VIRTUAL_ENV` or `CONDA_PREFIX` before running `anakinls` so Jedi will find proper environment. See [get\_default\_environment](https://jedi.readthedocs.io/en/latest/docs/api.html#jedi.get_default_environment). + + +## Diagnostics + +Diagnostics are published on document open and save. + +Diagnostics providers: + +- **Jedi** + + See [get\_syntax\_errors](https://jedi.readthedocs.io/en/latest/docs/api.html#jedi.Script.get_syntax_errors). + +- **pyflakes** +- **pycodestyle** + + Server restart is needed after changing one of the [configuration files](https://pycodestyle.pycqa.org/en/latest/intro.html#configuration). + +- **mypy** + + Install `mypy` in the same environment as `anakinls` and set `mypy_enabled` configuration option. + +## Configuration options + +Configuration options must be passed under `anakinls` key in `workspace/didChangeConfiguration` notification. + +Available options: + +|Option|Description|Default| +|-|-|-| +|`help_on_hover`|Use [`help`](https://jedi.readthedocs.io/en/latest/docs/api.html#jedi.Script.help) instead of [`infer`](https://jedi.readthedocs.io/en/latest/docs/api.html#jedi.Script.infer) for `textDocument/hover`.|`True`| +|`completion_snippet_first`|Tweak `sortText` property so snippet completion appear before plain completion.|`False`| +|`completion_fuzzy`|Value of the `fuzzy` parameter for [`complete`](https://jedi.readthedocs.io/en/latest/docs/api.html#jedi.Script.complete).|`False`| +|`diagnostic_on_open`|Publish diagnostics on `textDocument/didOpen`|`True`| +|`diagnostic_on_change`|Publish diagnostics on `textDocument/didChange`|`False`| +|`diagnostic_on_save`|Publish diagnostics on `textDocument/didSave`|`True`| +|`pyflakes_errors`|Diagnostic severity will be set to `Error` if Pyflakes message class name is in this list. See [Pyflakes messages](https://github.com/PyCQA/pyflakes/blob/master/pyflakes/messages.py).|`['UndefinedName']`| +|`pycodestyle_config`|In addition to project and user level config, specify pycodestyle config file. Same as `--config` option for `pycodestyle`.|`None`| +|`mypy_enabled`|Use [`mypy`](https://mypy.readthedocs.io/en/stable/index.html) to provide diagnostics.|`False`| +|`yapf_style_config`|Either a style name or a path to a file that contains formatting style settings.|`'pep8'`| +|`jedi_settings`|Global [Jedi settings](https://jedi.readthedocs.io/en/latest/docs/settings.html).<br>E.g. set it to `{"case_insensitive_completion": False}` to turn off case insensitive completion|`{}`| + +## Configuration example + +Here is [eglot](https://github.com/joaotavora/eglot) configuration: + +```elisp +(defvar my/lsp-venv nil + "Name of virtualenv. +Set it in project's dir-locals file.") + +(defclass my/eglot-anakinls (eglot-lsp-server) () + :documentation + "Own eglot server class.") + +(cl-defmethod eglot-initialization-options ((_server my/eglot-anakinls)) + "Pass initialization param to anakinls." + `(:venv ,(when my/lsp-venv + (expand-file-name + (concat "~/.virtualenvs/" my/lsp-venv))))) + +;; Add this server to eglot programs to handle python-mode and run `anakinls' +(add-to-list 'eglot-server-programs + '(python-mode my/eglot-anakinls "anakinls")) + +;; Also treat UnusedVariable as error +(setq-default eglot-workspace-configuration + '((:anakinls :pyflakes_errors ["UndefinedName" "UnusedVariable"]))) + +``` + +## Installation + +``` +pip install anakin-language-server +``` + + + + +%package -n python3-anakin-language-server +Summary: Yet another Jedi Python language server +Provides: python-anakin-language-server +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-anakin-language-server +# anakin-language-server +Yet another Jedi Python language server + +## Requirements + +- Python >= 3.6 +- pygls >= 0.10.2,<0.11 +- Jedi >= 0.18 +- pyflakes ~= 2.2 +- pycodestyle ~= 2.5 +- yapf ~=0.30 + +## Optional requirements +- mypy + +## Implemented features + +- `textDocument/completion` +- `textDocument/hover` +- `textDocument/signatureHelp` +- `textDocument/definition` +- `textDocument/references` +- `textDocument/publishDiagnostics` +- `textDocument/documentSymbol` +- `textDocument/codeAction` ([Inline variable](https://jedi.readthedocs.io/en/latest/docs/api.html#jedi.Script.inline)) +- `textDocument/formatting` +- `textDocument/rangeFormatting` +- `textDocument/rename` +- `textDocument/documentHighlight` + +## Initialization option + +- `venv` - path to virtualenv. This option will be passed to Jedi's [create\_environment](https://jedi.readthedocs.io/en/latest/docs/api.html#jedi.create_environment). + +Also one can set `VIRTUAL_ENV` or `CONDA_PREFIX` before running `anakinls` so Jedi will find proper environment. See [get\_default\_environment](https://jedi.readthedocs.io/en/latest/docs/api.html#jedi.get_default_environment). + + +## Diagnostics + +Diagnostics are published on document open and save. + +Diagnostics providers: + +- **Jedi** + + See [get\_syntax\_errors](https://jedi.readthedocs.io/en/latest/docs/api.html#jedi.Script.get_syntax_errors). + +- **pyflakes** +- **pycodestyle** + + Server restart is needed after changing one of the [configuration files](https://pycodestyle.pycqa.org/en/latest/intro.html#configuration). + +- **mypy** + + Install `mypy` in the same environment as `anakinls` and set `mypy_enabled` configuration option. + +## Configuration options + +Configuration options must be passed under `anakinls` key in `workspace/didChangeConfiguration` notification. + +Available options: + +|Option|Description|Default| +|-|-|-| +|`help_on_hover`|Use [`help`](https://jedi.readthedocs.io/en/latest/docs/api.html#jedi.Script.help) instead of [`infer`](https://jedi.readthedocs.io/en/latest/docs/api.html#jedi.Script.infer) for `textDocument/hover`.|`True`| +|`completion_snippet_first`|Tweak `sortText` property so snippet completion appear before plain completion.|`False`| +|`completion_fuzzy`|Value of the `fuzzy` parameter for [`complete`](https://jedi.readthedocs.io/en/latest/docs/api.html#jedi.Script.complete).|`False`| +|`diagnostic_on_open`|Publish diagnostics on `textDocument/didOpen`|`True`| +|`diagnostic_on_change`|Publish diagnostics on `textDocument/didChange`|`False`| +|`diagnostic_on_save`|Publish diagnostics on `textDocument/didSave`|`True`| +|`pyflakes_errors`|Diagnostic severity will be set to `Error` if Pyflakes message class name is in this list. See [Pyflakes messages](https://github.com/PyCQA/pyflakes/blob/master/pyflakes/messages.py).|`['UndefinedName']`| +|`pycodestyle_config`|In addition to project and user level config, specify pycodestyle config file. Same as `--config` option for `pycodestyle`.|`None`| +|`mypy_enabled`|Use [`mypy`](https://mypy.readthedocs.io/en/stable/index.html) to provide diagnostics.|`False`| +|`yapf_style_config`|Either a style name or a path to a file that contains formatting style settings.|`'pep8'`| +|`jedi_settings`|Global [Jedi settings](https://jedi.readthedocs.io/en/latest/docs/settings.html).<br>E.g. set it to `{"case_insensitive_completion": False}` to turn off case insensitive completion|`{}`| + +## Configuration example + +Here is [eglot](https://github.com/joaotavora/eglot) configuration: + +```elisp +(defvar my/lsp-venv nil + "Name of virtualenv. +Set it in project's dir-locals file.") + +(defclass my/eglot-anakinls (eglot-lsp-server) () + :documentation + "Own eglot server class.") + +(cl-defmethod eglot-initialization-options ((_server my/eglot-anakinls)) + "Pass initialization param to anakinls." + `(:venv ,(when my/lsp-venv + (expand-file-name + (concat "~/.virtualenvs/" my/lsp-venv))))) + +;; Add this server to eglot programs to handle python-mode and run `anakinls' +(add-to-list 'eglot-server-programs + '(python-mode my/eglot-anakinls "anakinls")) + +;; Also treat UnusedVariable as error +(setq-default eglot-workspace-configuration + '((:anakinls :pyflakes_errors ["UndefinedName" "UnusedVariable"]))) + +``` + +## Installation + +``` +pip install anakin-language-server +``` + + + + +%package help +Summary: Development documents and examples for anakin-language-server +Provides: python3-anakin-language-server-doc +%description help +# anakin-language-server +Yet another Jedi Python language server + +## Requirements + +- Python >= 3.6 +- pygls >= 0.10.2,<0.11 +- Jedi >= 0.18 +- pyflakes ~= 2.2 +- pycodestyle ~= 2.5 +- yapf ~=0.30 + +## Optional requirements +- mypy + +## Implemented features + +- `textDocument/completion` +- `textDocument/hover` +- `textDocument/signatureHelp` +- `textDocument/definition` +- `textDocument/references` +- `textDocument/publishDiagnostics` +- `textDocument/documentSymbol` +- `textDocument/codeAction` ([Inline variable](https://jedi.readthedocs.io/en/latest/docs/api.html#jedi.Script.inline)) +- `textDocument/formatting` +- `textDocument/rangeFormatting` +- `textDocument/rename` +- `textDocument/documentHighlight` + +## Initialization option + +- `venv` - path to virtualenv. This option will be passed to Jedi's [create\_environment](https://jedi.readthedocs.io/en/latest/docs/api.html#jedi.create_environment). + +Also one can set `VIRTUAL_ENV` or `CONDA_PREFIX` before running `anakinls` so Jedi will find proper environment. See [get\_default\_environment](https://jedi.readthedocs.io/en/latest/docs/api.html#jedi.get_default_environment). + + +## Diagnostics + +Diagnostics are published on document open and save. + +Diagnostics providers: + +- **Jedi** + + See [get\_syntax\_errors](https://jedi.readthedocs.io/en/latest/docs/api.html#jedi.Script.get_syntax_errors). + +- **pyflakes** +- **pycodestyle** + + Server restart is needed after changing one of the [configuration files](https://pycodestyle.pycqa.org/en/latest/intro.html#configuration). + +- **mypy** + + Install `mypy` in the same environment as `anakinls` and set `mypy_enabled` configuration option. + +## Configuration options + +Configuration options must be passed under `anakinls` key in `workspace/didChangeConfiguration` notification. + +Available options: + +|Option|Description|Default| +|-|-|-| +|`help_on_hover`|Use [`help`](https://jedi.readthedocs.io/en/latest/docs/api.html#jedi.Script.help) instead of [`infer`](https://jedi.readthedocs.io/en/latest/docs/api.html#jedi.Script.infer) for `textDocument/hover`.|`True`| +|`completion_snippet_first`|Tweak `sortText` property so snippet completion appear before plain completion.|`False`| +|`completion_fuzzy`|Value of the `fuzzy` parameter for [`complete`](https://jedi.readthedocs.io/en/latest/docs/api.html#jedi.Script.complete).|`False`| +|`diagnostic_on_open`|Publish diagnostics on `textDocument/didOpen`|`True`| +|`diagnostic_on_change`|Publish diagnostics on `textDocument/didChange`|`False`| +|`diagnostic_on_save`|Publish diagnostics on `textDocument/didSave`|`True`| +|`pyflakes_errors`|Diagnostic severity will be set to `Error` if Pyflakes message class name is in this list. See [Pyflakes messages](https://github.com/PyCQA/pyflakes/blob/master/pyflakes/messages.py).|`['UndefinedName']`| +|`pycodestyle_config`|In addition to project and user level config, specify pycodestyle config file. Same as `--config` option for `pycodestyle`.|`None`| +|`mypy_enabled`|Use [`mypy`](https://mypy.readthedocs.io/en/stable/index.html) to provide diagnostics.|`False`| +|`yapf_style_config`|Either a style name or a path to a file that contains formatting style settings.|`'pep8'`| +|`jedi_settings`|Global [Jedi settings](https://jedi.readthedocs.io/en/latest/docs/settings.html).<br>E.g. set it to `{"case_insensitive_completion": False}` to turn off case insensitive completion|`{}`| + +## Configuration example + +Here is [eglot](https://github.com/joaotavora/eglot) configuration: + +```elisp +(defvar my/lsp-venv nil + "Name of virtualenv. +Set it in project's dir-locals file.") + +(defclass my/eglot-anakinls (eglot-lsp-server) () + :documentation + "Own eglot server class.") + +(cl-defmethod eglot-initialization-options ((_server my/eglot-anakinls)) + "Pass initialization param to anakinls." + `(:venv ,(when my/lsp-venv + (expand-file-name + (concat "~/.virtualenvs/" my/lsp-venv))))) + +;; Add this server to eglot programs to handle python-mode and run `anakinls' +(add-to-list 'eglot-server-programs + '(python-mode my/eglot-anakinls "anakinls")) + +;; Also treat UnusedVariable as error +(setq-default eglot-workspace-configuration + '((:anakinls :pyflakes_errors ["UndefinedName" "UnusedVariable"]))) + +``` + +## Installation + +``` +pip install anakin-language-server +``` + + + + +%prep +%autosetup -n anakin-language-server-1.16 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-anakin-language-server -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 1.16-1 +- Package Spec generated @@ -0,0 +1 @@ +a9328350812dc70841c4e02cadd4f9a3 anakin-language-server-1.16.tar.gz |
