Skip to content

Commit

Permalink
Merge pull request #100 from gnikit/gnikit/issue99
Browse files Browse the repository at this point in the history
Update README and peripherals
  • Loading branch information
gnikit authored May 2, 2022
2 parents d73fc67 + 7d0cd42 commit 6f8741e
Show file tree
Hide file tree
Showing 14 changed files with 186 additions and 28 deletions.
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
82 changes: 54 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
@@ -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)
Expand All @@ -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+).

Expand All @@ -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
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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
<!-- ## Support
If you want to support this project you can do it through
[![Alt](https://www.paypalobjects.com/webstatic/mktg/Logo/pp-logo-150px.png)](https://paypal.me/inikit)
[!["Buy Me A Coffee"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/gnikit)
Support the original project go [here](https://paypal.me/hansec)
[!["Buy Me A Coffee"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/gnikit) -->

## Bug reports

Expand Down
Binary file added assets/animations/intro-demo.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
106 changes: 106 additions & 0 deletions assets/logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed images/fortls_autocomplete.gif
Binary file not shown.
Binary file removed images/fortls_diag.png
Binary file not shown.
Binary file removed images/fortls_gotodef.gif
Binary file not shown.
Binary file removed images/fortls_hover.gif
Binary file not shown.
Binary file removed images/fortls_outline.png
Binary file not shown.
Binary file removed images/fortls_refs.png
Binary file not shown.
Binary file removed images/fortls_sigHelp.gif
Binary file not shown.
6 changes: 6 additions & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
8 changes: 8 additions & 0 deletions test/test_interface.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit 6f8741e

Please sign in to comment.