diff --git a/CHANGELOG.md b/CHANGELOG.md index 652eb07e..95be0c2c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # CHANGELONG +## 2.3.0 + +### Added + +- Added keywords to the PyPi manifest + ([#99](https://github.com/gnikit/fortls/issues/99)) + +### Changed + +- Updated `README` to include logo and animations +- Updated `README` to include conda-forge installation instructions + ## 2.2.14 ### Added diff --git a/README.md b/README.md index 1b538fb3..4764b10e 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +![alt](https://raw.githubusercontent.com/gnikit/fortls/master/assets/logo.png) + # fortls - Fortran Language Server ![PyPI](https://img.shields.io/pypi/v/fortls) @@ -8,6 +10,11 @@ [![GitHub license](https://img.shields.io/github/license/gnikit/fortls)](https://github.com/gnikit/fortls/blob/dev/LICENSE) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) +[![GitHub Sponsor](https://img.shields.io/static/v1?style=social&label=Sponsor&message=%E2%9D%A4&logo=GitHub&color&link=%3Curl%3E)](https://github.com/sponsors/gnikit) +[![PayPal](https://img.shields.io/static/v1?style=social&label=Donate&message=%E2%9D%A4&logo=Paypal&color&link=%3Curl%3E)](https://paypal.me/inikit) + +![alt](https://raw.githubusercontent.com/gnikit/fortls/master/assets/animations/intro-demo.gif) + `fortls` is an implementation of the [Language Server Protocol](https://github.com/Microsoft/language-server-protocol) (LSP) for Fortran using Python (3.7+). @@ -16,24 +23,10 @@ All code editors that support LSP can integrate with `fortls` see the section Some supported code editors include: [Visual Studio Code](https://gnikit.github.io/fortls/editor_integration.html#visual-studio-code), [Atom](https://gnikit.github.io/fortls/editor_integration.html#atom), -[Sublime Text](https://gnikit.github.io/fortls/editor_integration.html#sublime-text) +[Sublime Text](https://gnikit.github.io/fortls/editor_integration.html#sublime-text), [(Neo)Vim](https://gnikit.github.io/fortls/editor_integration.html#vim-neovim-gvim), -[Visual Studio](https://gnikit.github.io/fortls/editor_integration.html#visual-studio-2017), and [Emacs](https://gnikit.github.io/fortls/editor_integration.html#emacs). -## `fortls` vs `fortran-language-server` - -This project is based on @hansec's original Language Server implementation but the two projects have since diverged. -`fortls` (this project) is now developed independently of the upstream `hansec/fortran-language-server` project and contains numerous bug fixes and new features -the original `fortran-language-server` does not. - -For a complete and detailed list of the differences between the two Language Servers -see the Documentation section: [Unique fortls features (not in fortran-language-server)](https://gnikit.github.io/fortls/fortls_changes.html) - -The name of executable for this project has been chosen to remain `fortls` -to allow for integration with pre-existing plugins and workflows but it is -potentially subject to change. - ## Features - Project-wide and Document symbol detection and Renaming @@ -68,20 +61,55 @@ potentially subject to change. - Signature help and hover does not handle elegantly overloaded functions i.e. interfaces +## `fortls` vs `fortran-language-server` + +This project was originally based on `fortran-language-server` LSP implementation, but the two projects have since diverged. + +`fortls` (this project) is now developed independently of the upstream `hansec/fortran-language-server` project and contains numerous new features and bug fixes +the original `fortran-language-server` does not. + +For a complete and detailed list of the differences between the two Language Servers +see the Documentation section: [Unique fortls features (not in fortran-language-server)](https://gnikit.github.io/fortls/fortls_changes.html) + +The name of executable for this project has been chosen to remain `fortls` +to allow for integration with pre-existing plugins and workflows, but it could +change in the future. + ## Installation +### PyPi + ```sh pip install fortls ``` -> **Warning**: it is not recommended having `fortls` and `fortran-language-server` -> simultaneously installed, since they use the same binary name. If you are having trouble -> getting `fortls` to work try uninstalling `fortran-language-server` and reinstalling `fortls`. -> -> ```sh -> pip uninstall fortran-language-server -> pip install fortls --upgrade -> ``` +### Anaconda + +```sh +conda install -c conda-forge fortls +``` + +for more information about the Anaconda installation [see](https://github.com/conda-forge/fortls-feedstock#about-fortls) + +### Common installation problems + +It is **NOT** recommended having `fortls` and `fortran-language-server` +simultaneously installed, since they use the same binary name. If you are having trouble +getting `fortls` to work try uninstalling `fortran-language-server` and reinstalling `fortls`. + +With `pip` + +```sh +pip uninstall fortran-language-server +pip install fortls --upgrade +``` + +or with Anaconda + +```sh +conda uninstall fortran-language-server +conda install -c conda-forge fortls +``` ## Settings @@ -129,16 +157,14 @@ An example for a Configuration file is given below ## Acknowledgements This project would not have been possible without the original work of [@hansec](https://github.com/hansec/) -and the original [`fortran-language-server`](https://github.com/hansec/fortran-language-server) +in [`fortran-language-server`](https://github.com/hansec/fortran-language-server) -## Support + ## Bug reports diff --git a/assets/animations/intro-demo.gif b/assets/animations/intro-demo.gif new file mode 100644 index 00000000..84c5ab6b Binary files /dev/null and b/assets/animations/intro-demo.gif differ diff --git a/assets/logo.png b/assets/logo.png new file mode 100644 index 00000000..3b0ff61b Binary files /dev/null and b/assets/logo.png differ diff --git a/assets/logo.svg b/assets/logo.svg new file mode 100644 index 00000000..0c7e595e --- /dev/null +++ b/assets/logo.svg @@ -0,0 +1,106 @@ + + + + + + + + + + + ort + F + LS + + + diff --git a/images/fortls_autocomplete.gif b/images/fortls_autocomplete.gif deleted file mode 100644 index cc362071..00000000 Binary files a/images/fortls_autocomplete.gif and /dev/null differ diff --git a/images/fortls_diag.png b/images/fortls_diag.png deleted file mode 100644 index dc20b817..00000000 Binary files a/images/fortls_diag.png and /dev/null differ diff --git a/images/fortls_gotodef.gif b/images/fortls_gotodef.gif deleted file mode 100644 index eae797a5..00000000 Binary files a/images/fortls_gotodef.gif and /dev/null differ diff --git a/images/fortls_hover.gif b/images/fortls_hover.gif deleted file mode 100644 index 31369287..00000000 Binary files a/images/fortls_hover.gif and /dev/null differ diff --git a/images/fortls_outline.png b/images/fortls_outline.png deleted file mode 100644 index 289d455b..00000000 Binary files a/images/fortls_outline.png and /dev/null differ diff --git a/images/fortls_refs.png b/images/fortls_refs.png deleted file mode 100644 index ecc85297..00000000 Binary files a/images/fortls_refs.png and /dev/null differ diff --git a/images/fortls_sigHelp.gif b/images/fortls_sigHelp.gif deleted file mode 100644 index 94e284db..00000000 Binary files a/images/fortls_sigHelp.gif and /dev/null differ diff --git a/setup.cfg b/setup.cfg index 3dd2c68c..03b6d826 100644 --- a/setup.cfg +++ b/setup.cfg @@ -24,6 +24,12 @@ classifiers = Operating System :: POSIX Operating System :: Unix Operating System :: MacOS +keywords = + fortran + language server + language server protocol + lsp + fortls project_urls = Documentation = https://gnikit.github.io/fortls Repository = https://github.com/gnikit/fortls diff --git a/test/test_interface.py b/test/test_interface.py index 7e221ee3..6a437efe 100644 --- a/test/test_interface.py +++ b/test/test_interface.py @@ -180,3 +180,11 @@ def test_version_update_pypi(): s.root_path = (Path(__file__).parent / "test_source").resolve() did_update = s._update_version_pypi(test=True) assert did_update + + s.disable_autoupdate = True + did_update = s._update_version_pypi() + assert not did_update + + s.disable_autoupdate = False + did_update = s._update_version_pypi() + assert not did_update