GithubHelp home page GithubHelp logo

classicvalues / erlide_kernel Goto Github PK

View Code? Open in Web Editor NEW

This project forked from erlang/erlide_kernel

0.0 1.0 0.0 5.57 MB

Erlang IDE engine supporting source code indexing and manipulation. Currently only an Eclipse client is implemented.

Home Page: http://erlide.org

Erlang 99.41% Shell 0.59%

erlide_kernel's Introduction

Generic Erlang engine for source code indexing and manipulation, that can be used by code editors and IDES to provide advanced functionality. This functionality will be accessible via VSCode's Language Server Protocol and Debug Protocol, possibly with some extensions. The server application is the endpoint.

Important note

The content of this repository is highly volatile at the moment. I am working on stabilizing it (structure, release engineering, APIs) and I will remove this notice when it is safe to use by third parties.

Initially, the content is the same as it was in the erlide repository.

Description (vision)

The erlide kernel will implement the core functionality of an IDE:

  • keep track of projects and their respective files, watch or get notified of any changes
  • parse the code while keeping track of the exact source text and the dependencies between files and projects
  • build a database of the projects' entities
  • expose APIs to query and update this database, for services such as
    • syntactic and semantic code annotations (to be used by highlighting editors, for example)
    • code completion
    • cross references (declarations, references, call graphs)
    • extracting documentation
    • refactoring
  • read/edit the projects' build configuration and launch build tools
  • launch the projects' code and interact with it (debug, trace, profile)
  • launch, examine and interact with Erlang nodes

Notes

  • The OTP version specified in the rebar.config files for each subproject MUST be used for compilation. The build script installs those using kerl in ~/erlide_tools (in the future the location should be configurable).
  • As transport for the communication protocols we will implement TCP and stdio, but others are possible.

erlide_kernel's People

Contributors

vladdu avatar

Watchers

 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.