All Projects → anupcowkur → Here Be Dragons

anupcowkur / Here Be Dragons

Licence: mit
An Intellij/Android Studio plugin to help visualise side effects in your code.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Here Be Dragons

Idea Cli Inspector
A little command-line tool to integrate the awesome IntelliJ IDEA code inspections in your continuous integration (CI) process using Jenkins, Bamboo, et. al.
Stars: ✭ 120 (-63.08%)
Mutual labels:  intellij, androidstudio
Freasy Monad
Easy way to create Free Monad using Scala macros with first-class Intellij support.
Stars: ✭ 112 (-65.54%)
Mutual labels:  intellij, functional-programming
Intellij Plugin Save Actions
Supports configurable, Eclipse like, save actions, including "organize imports", "reformat code" and "rearrange code".
Stars: ✭ 440 (+35.38%)
Mutual labels:  intellij, androidstudio
SideMirror
An Android Studio plugin to mirror your android devices with scrcpy directly from Android Studio.
Stars: ✭ 49 (-84.92%)
Mutual labels:  intellij, androidstudio
Prelude Ts
Functional programming, immutable collections and FP constructs for typescript and javascript
Stars: ✭ 315 (-3.08%)
Mutual labels:  functional-programming
Functionkit
A framework for functional types and operations designed to fit naturally into Swift.
Stars: ✭ 302 (-7.08%)
Mutual labels:  functional-programming
Droste
recursion schemes for cats; to iterate is human, to recurse, divine
Stars: ✭ 300 (-7.69%)
Mutual labels:  functional-programming
Aecor
Pure functional event sourcing runtime
Stars: ✭ 299 (-8%)
Mutual labels:  functional-programming
Intellij Colors Solarized
Solarized Colorscheme for IntelliJ IDEA
Stars: ✭ 3,266 (+904.92%)
Mutual labels:  intellij
Monio
Async-capable IO monad for JS
Stars: ✭ 311 (-4.31%)
Mutual labels:  functional-programming
Quack
🐤 A multi-paradigm programming language with gradual and duck typing that targets PHP and JS
Stars: ✭ 309 (-4.92%)
Mutual labels:  functional-programming
Themecreator
https://mswift42.github.io/themecreator/ create themes for intellij, textmate, atom, emacs, vim and gnome terminal.
Stars: ✭ 303 (-6.77%)
Mutual labels:  intellij
Lambda Talk
A Flock of Functions: Combinators, Lambda Calculus, & Church Encodings in JS
Stars: ✭ 315 (-3.08%)
Mutual labels:  functional-programming
Awesome Idris
𝛌 Awesome Idris resources
Stars: ✭ 299 (-8%)
Mutual labels:  functional-programming
Intellij Plugin V4
An IntelliJ plugin for ANTLR v4
Stars: ✭ 318 (-2.15%)
Mutual labels:  intellij
Virtual Audio Graph
🎶 Library for declaratively manipulating the Web Audio API
Stars: ✭ 299 (-8%)
Mutual labels:  functional-programming
Shapeless
Generic programming for Scala
Stars: ✭ 3,207 (+886.77%)
Mutual labels:  functional-programming
Sequenceplugin
SequencePlugin for IntelliJ IDEA
Stars: ✭ 316 (-2.77%)
Mutual labels:  intellij
Coconut
Simple, elegant, Pythonic functional programming.
Stars: ✭ 3,422 (+952.92%)
Mutual labels:  functional-programming
Intellij Elm
Elm language support for IntelliJ, WebStorm, PhpStorm and PyCharm (JetBrains)
Stars: ✭ 305 (-6.15%)
Mutual labels:  intellij

Deprecated

This project is no longer maintained. No new issues or pull requests will be accepted. You can still use the source or fork the project to suit your needs.

Here Be Dragons

Here be dragons is an Intellij/Android Studio plugin that let's you annotate your impure Java methods with the @SideEffect annotation and shows a little dragon icon in the gutter when you call them.

How the plugin works

Why would I want to do this?

When writing functional style code, isolating impure and pure functions becomes very important. This helps you visually identify which methods are impure when a bunch of methods are being called in a code block.

For a beginner friendly introduction to functional programming in Android, please checkout out my blog series.

Installation

Install the plugin

Download the plugin jar and select "Install Plugin From Disk" in IntelliJ's plugin preferences.

Add the annotation library

Add the jcenter repository to your gradle build file if it's not already present:

repositories {
    jcenter()
}

Next, add the lib containing the @SideEffect annotation as a dependency:

dependencies {
    compile 'com.anupcowkur:here-be-dragons-annotation:1.0.1'
}

Usage

Simpy add the @SideEffect annotation to any method you want like this:

import com.anupcowkur.herebedragons.SideEffect;

public class Test {
    @SideEffect
    public void foo() {
        // do some impure things
    }
}

And when you call the method anywhere, you'll see the dragon icon show up in the IDE gutter.

License

This project is licensed under the MIT License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].