summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-anakin-language-server.spec413
-rw-r--r--sources1
3 files changed, 415 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..dd672be 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
diff --git a/sources b/sources
new file mode 100644
index 0000000..4796116
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+a9328350812dc70841c4e02cadd4f9a3 anakin-language-server-1.16.tar.gz