https://github.com/thalesgroup/frama-c-lsp
This repository contains both the server and client software that implement the Language Server Protocol (LSP) for C/ACSL language. The server part is a novel Frama-C plugin called "lsp". The client part is a VsCode extension.
https://github.com/thalesgroup/frama-c-lsp
acsl c formal-methods formal-verification frama-c lsp lsp-client lsp-server vscode-extension
Last synced: 2 months ago
JSON representation
This repository contains both the server and client software that implement the Language Server Protocol (LSP) for C/ACSL language. The server part is a novel Frama-C plugin called "lsp". The client part is a VsCode extension.
- Host: GitHub
- URL: https://github.com/thalesgroup/frama-c-lsp
- Owner: ThalesGroup
- License: lgpl-3.0
- Created: 2025-02-27T09:56:09.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-03-06T08:22:31.000Z (2 months ago)
- Last Synced: 2025-03-06T09:36:08.527Z (2 months ago)
- Topics: acsl, c, formal-methods, formal-verification, frama-c, lsp, lsp-client, lsp-server, vscode-extension
- Language: OCaml
- Homepage:
- Size: 426 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# ACSl LSP
This repository contains both the server and client software that implement the Language Server Protocol (LSP) for C/ACSL language.
Refer to README files in each subdirectory for installation guidelines.The client part is inspired from https://github.com/Microsoft/vscode-extension-samples/tree/main/lsp-sample
The server part is a Frama-C plugin called "LSP" that has two usage modes:
- handler mode: ensures sustainable exchange of TCP/IP sockets between the server and the client.
- feature mode: ensures background frama-c process execution with parameters required for requested feature.## Configuration
This software is compatible with Frama-C v29.0 and Linux ubuntu 22.04 LTS.
No other configuration is supported currently.## Contributing
We welcome contributions from the community! If you would like to contribute, follow these steps:- Fork the repository.
- Create a new branch (git checkout -b feature/your-feature).
- Make your changes.
- Commit your changes (git commit -am 'Add new feature').
- Push to the branch (git push origin feature/your-feature).
- Open a pull request.
- Please ensure your code adheres to the project's coding standards and includes appropriate tests if necessary.## License
This project is licensed under the LGPLv3 License - see the LICENSE file for details.## Acknowledgments
This software has been initiated in 2024 by Djamila MOHAMED and Adel DJOUDI.