Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/intellij-frege/intellij-frege
IntelliJ IDEA plugin for Frege language
https://github.com/intellij-frege/intellij-frege
frege intellij-idea intellij-plugin
Last synced: 4 months ago
JSON representation
IntelliJ IDEA plugin for Frege language
- Host: GitHub
- URL: https://github.com/intellij-frege/intellij-frege
- Owner: IntelliJ-Frege
- License: apache-2.0
- Created: 2021-02-28T06:54:45.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2022-05-21T13:45:02.000Z (over 2 years ago)
- Last Synced: 2024-10-09T18:40:19.230Z (4 months ago)
- Topics: frege, intellij-idea, intellij-plugin
- Language: Kotlin
- Homepage:
- Size: 5.28 MB
- Stars: 39
- Watchers: 2
- Forks: 1
- Open Issues: 25
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# IntelliJ IDEA plugin for Frege language
[![Frege Plugin Build & Test](https://github.com/IntelliJ-Frege/intellij-frege/actions/workflows/tests.yml/badge.svg)](https://github.com/IntelliJ-Frege/intellij-frege/actions/workflows/tests.yml)## What is Frege
Frege is a Haskell for the JVM. It is functional, has strong static type system and lazy evaluations,
but Frege compiles to Java and runs on JVM. Also, it can use any Java library and can be used inside any Java project.Read more at [Frege github](https://github.com/Frege/frege).
## Installation
Plugin is available on [JetBrains plugin repository](https://plugins.jetbrains.com/plugin/17187-frege).
## Current progress
Features implemented partially or completely:
- Lexer
- Parser
- Syntax highlighting and color schemes
- Gradle-based build system
- Navigation
- Find usages
- Code completion
- Rename refactoring
- File templates
- Index files
- Frege REPL
- 'Add import' quickfix for unresolved references
- Documentation viewerFeatures desired:
- Structure view
- Formatter
- More quickfixes
- More refactorings
- Type system
- and more## Examples
Below you can see examples of our plugin:
- Navigation
![Navigation example](assets/images/Navigation1.png)
![Navigation example](assets/images/Navigation2.png)
![Navigation example](assets/images/Navigation3.png)
- Navigation depends on imports
![Navigation imports example](assets/gifs/NavigationImports.gif)
- Navigation to Java (and other JVM-languages)
![Navigation to Java example](assets/gifs/NavigationToJava.gif)
- Navigation from Java (and other JVM-languages)
![Navigation from Java example](assets/gifs/NavigationFromJava.gif)
- Line markers
- To type annotation
![Line marker annotation example](assets/gifs/LineMarkerAnnotation.gif)
- To instanced methods and vice versa
![Line marker to from instance](assets/gifs/LineMarkerToFromInstance.gif)
- Run Frege
![Line marker run Frege](assets/gifs/RunFrege.gif)
- Find usages
![Find usages](assets/images/FindUsages.png)
- Code completion
![Code completion](assets/images/CodeCompletion1.png)
![Code completion](assets/images/CodeCompletion2.png)
- Rename refactoring
![Rename refactoring](assets/gifs/Renaming.gif)
- Add import quickfix
![Add import quickfix](assets/gifs/AddImportQuickfix.gif)
- Documentation viewer
![Documentation viewer](assets/gifs/DocumentationViewer.gif)
- REPL integration
![REPL integration](assets/gifs/ReplIntegration.gif)
- REPL: execute parts of code
![REPL execution](assets/gifs/ReplExecution.gif)
## Contributors
[Peter Surkov](https://github.com/psurkov/)
[Kirill Karnaukhov](https://github.com/kkarnauk)
[Jura Khudyakov](https://github.com/23jura23/)
Special thanks to [Semyon Atamas](https://github.com/satamas) and [Dierk König](https://github.com/Dierk)!
## License
Apache-2.0