Giter Site home page Giter Site logo

ide-erlang's Introduction

ide-erlang package

Provides support of Erlang language for Atom IDE, using atom-languageclient and erlang_ls LSP server.

Currently in development.

Known and somewhat tested functions:

  • erlang_ls can be downloaded and compiled. It is not downloaded, if it was downloaded earlier.
  • erlang_ls is started. Communication through stdio only. Debug log is written to .cache/erlang_ls in Linux.
  • Goto declaration works for functions (even in other files).
  • Functions, that have specs get them displayed as a tooltip.

TODO list:

  • Make documentation (source) of dependencies available for erlang_ls.
  • Check the loading time. Currently the package almost freezes the computer for several seconds while the sources are being analysed. Maybe it is because of Atom dev environment? Can standard Erlang modules be indexed once and not every time Atom is started?
  • Check all the functions erlang_ls and Atom IDE can provide.
  • Maybe add some configuration possibilities.

Known bugs:

  • Sometimes when downloading server the following error appears:
      Error: unexpected end of file
    
    The following text appears in console:
      Uncaught (in promise) Error: unexpected end of file
          at Zlib.zlibOnError [as onerror] (zlib.js:166)
    
    It appears that the extraction is attempted before download is complete. However as far as I can see, the promises are handled correctly and debugging confirms it. If such situation occurs, server loading should be restarted.

References

This package is based on atom-languageclient.
It uses Language Server Protocol and erlang_ls server to provide its functionality.
The source code of ide-java package was used heavily to develop this package.

Disclaimer

I am not a very good JavaScript programmer. I am not familiar with Atom. And this is the first plug-in (package) I've ever written. So I will be very grateful for every constructive criticism and help with this project. I believe that Erlang is a fantastic language and it should be supported by Atom. I want to use Atom to develop my Erlang projects. Please, help me.

This work was inspired by a wonderful talk by erlang_ls author Roberto Aloi, called "Boost your productivity with the Erlang Language Server", in Code BEAM V conference on 11th September, 2020.

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.