Introduction 3
1. Statement of the problem 5
2. Overview 6
3. Implementation design 8
4. Language specific features implementation 10
4.1. Code analysis and editor features 10
4.2. Working with F# projects 11
4.3. Source code navigation 12
4.4. Building, running and debugging code 14
5. Conclusion 16
References 17
F# [5] is an open-source functional-first programming language that
was designed to be used in .NET, a software framework developed by
Microsoft. .NET Framework contains a large class library and a powerful
runtime called Common Language Runtime (CLR). F# was highly
influenced by OCaml, an ML family language. Code written in F# may
inter-operate with code written in other .NET languages such as C# and
VB.NET and, being a general-purpose programming language, is
especially popular in data analysis, web-development and as a language
for rapid prototyping and scripting. F# was designed by Don Syme,
Microsoft Research and is developed by F# Software Foundation,
Microsoft and open-source contributors.
An integrated development environment (an IDE) provides an easy
navigation through source code, shows warnings and errors found with
offering possible fixes and allows users to do refactorings across multiple
files along with other useful features. In addition to code reading and
editing features, an IDE usually includes tools for building, unit-testing
and publishing code and version control systems integration.
JetBrains Rider1 is a cross-platform .NET IDE based on JetBrains
IntelliJ Platform2 and JetBrains ReSharper3.
IntelliJ Platform is an open-source platform developed by JetBrains
and is used to develop IDEs. It is most known for JetBrains IntelliJ
IDEA4, an IDE for JVM languages such as Java and Kotlin and for
Google Android Studio aiming mobile development. Its core components
include rich text-editor, UI framework, virtual file system, version control
integration, debugger framework and may be further extended with
plugins [2].
During this work an initial F# support plugin was implemented which is now bundled in JetBrains Rider allowing its users to use F# language. The following tasks were done:
• an FCS integration was designed,
• language specific features were implemented including:
— code analysis and editor features,
— working with F# projects,
— source code navigation,
— running and debugging F# code.
• an F# support plugin is now bundled in Rider.
The plugin source code is going to be available at github.com/jetbrains/resharper-fsharp.