Giter VIP home page Giter VIP logo

796f / srclib Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sourcegraph/srclib

1.0 0.0 0.0 3.07 MB

srclib is a polyglot code analysis library, built for hackability. It consists of language analysis toolchains (currently for Go, Python, JavaScript, and Ruby) with a common output format, and developer tools (such as editor plugins) that consume this format.

Home Page: https://srclib.org

License: Other

srclib's Introduction

srclib Build Status

Note: srclib is alpha. Post an issue if you have any questions or difficulties running and hacking on it.

srclib is a source code analysis library. It provides standardized tools, interfaces and data formats for generating, representing and querying information about source code in software projects.

Why? Right now, most people write code in editors that don't give them as much programming assistance as is possible. That's because creating an editor plugin and language analyzer for your favorite language and editor combo is a lot of work. And when you're done, your plugin only supports a single language and editor, and maybe only half the features you wanted (such as doc lookups and "find usages"). Because there are no standard cross-language and cross-editor APIs and formats, it is difficult to reuse your plugin for other languages or editors.

We call this the M-by-N problem: given M editors and N languages, we need to write (on the order of) Mร—N plugins to get good tooling in every case. That number gets large quickly, and it's why we suffer from poor developer tools.

srclib solves this problem in 2 ways by:

  • Publishing standard formats and APIs for source analyzers and editor plugins to use. This means that improvements in a srclib language analyzer benefit users in any editor, and improvements in a srclib editor plugin benefit everyone who uses that editor on any language.

  • Providing high-quality language analyzers and editor plugins that implement this standard. These were open-sourced from the code that powers Sourcegraph.com.

See srclib.org for more information.

Currently, srclib supports:

Want to extend srclib to support more languages, features, or editors? During this alpha period, we will work closely with you to help you. Post an issue to let us know what you're building to get started.

Usage

See Getting started for installation instructions.

Once you install srclib's src tool and language support toolchains, you'll use srclib by installing an editor plugin in your editor of choice. See all editor plugins.

Misc.

  • bash completion for src: run source contrib/completion/src-completion.bash or copy that file to /etc/bash_completion.d/srclib_src (path may be different on your system)

License

Sourcegraph is licensed under the MIT License. More information in the LICENSE file.

srclib's People

Contributors

sqs avatar beyang avatar rameshvarun avatar adamnemecek avatar samertm avatar xizhao avatar

Stargazers

Timothy 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.