Code Monkey home page Code Monkey logo

elm-light-guide's Introduction

This plugin aims to provide you with 1st. class support for the Elm programming language and associated platform.

It's very much work in progress, but it's getting better by the day and will improve even more when the Elm platform gets more hooks for tooling.

Some of the key features already supported are:

  • Linting of your projects with inline errors and warnings. There are also some handy quickfixes available for various warning messages returned from the elm compiler
  • Syntax highlighting: Syntax highlighting is provided through a slightly customized CodeMirror mode (Light Table uses CodeMirror behind the scenes)
  • Testing: You can get really quickly started writing and running tests using the elm-test integration buildt into the plugin. You can make test selections and view test results in the test dashboard of the plugin.
  • Package manager: There is a handy package manager that lets you add/remove packages to your project. It's a nice convenience feature to make it easier for you to manage your dependencies. There is also a cool dependency viewer to see how it all ties together with direct and transitive dependencies
  • Reactor integration: When you connect to an Elm project the plugin will start an elm-reactor instance for you in the background. This allows you to quickly get started and you can use the inbuildt browser in Light Table to view your changes by a quick combination of save and refresh.
  • Repl integration: The elm-repl is an untapped resources that I suspect far to many beginners and even advanced Elm programmers use as much as they should. The plugin starts an elm-repl instance for you when you connect to an Elm project. You can perform code eval of individual expressions and view the results inline in your editor. This is really quite handy once you try it out. (The elm-repl is unfortunately a bit limited, and doesn't handle view related stuff). Writing a Json decoder ? Fire up an elm-repl, and start exploring your way with a tight feedback loop to a great solution !
  • Refactoring: As of version 0.4.0 the plugin has set out on the quest to provide handy refactoring features. It's still very much early days, but things will get interesting going forward. The plugin now parses all your project code and the code for your dependencies once you connect to a project. Once connected it will listen for changes to all relevant files and reparse as necessary. The ASTs from this parsing will enable quite a few interesting features going forward !
  • Docs: It's really handy to have documentation inline in your editor. The plugin supports display docs for modules from external packages as well as your own modules and top level declarations. You can also search for docs for any publicly exposed function within your project. Less context switching for you ! For package authors there is also a documentation preview which is really handy to use before you publish a package to the central package repository.
  • Navigation: You can easily jump to back and forth between functions and modules. Both using the Module browser and through the use of quick navigation (jump to) in your editor buffers.

If you find any bugs or want to request features, don't hesitate to submit them to the issue tracker for plugin repo

I hope and trust you will find the plugin a useful and enjoyable tool for developing your Elm projects and packages.

Magnus

elm-light-guide's People

Contributors

rundis avatar gitbook-bot avatar

Watchers

Julian Pistorius avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.