%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).
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).
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).
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
* Tue May 30 2023 Python_Bot - 1.16-1
- Package Spec generated