Linting and Fixing Code for All Languages

coala: Language Independent Code Analysis

coala provides a common command-line interface for linting and fixing all your code, regardless of the programming languages you use. It allows users to analyse projects containing multiple languages with just one tool, using just one configuration and seeing just one user interface.

How does it work?

With coala, you create just one configuration file. It can be separated into sections that run independently to fit different scenarios. Using different bears (which are coala's modules) users can work with a wide range of existing tools, wrapped by bears, and native analysis routines. This enables users to check their python code for pep8 conformity, calculate complexity for their java code, find code duplicates in the C code and check the documentation for spelling errors, while making sure the commits follow the set guidelines. All controlled via one configuration file, run with one command and served in the same user interface.

For Users

coala offers a unified static code analysis suite. It can be used as a simple standalone testing suite, pre-commit hook and CI tool. Besides the normal user interactive mode, there is a non interactive mode for CI, a html output mode, to view results in the browser, and JSON output if you want to integrate coala into your own system. If implemented, coala even offers to automatically fix problems.

For Developers

You can easily write your own bears. coala is written with ease of extension in mind. That means: no big boilerplate, just write one small object with one routine, add the parameters you like and see how coala automates the organisation of settings, user interaction and execution parallelisation.

For Newcomers

coala offers a great newcomer experience with an in depth step by step guide for your first contribution, extensive documentation of the whole workflow and fast and easy communication over the gitter channel.

lightbulb_outline View ideas list

Technologies

  • django
  • python 3
  • antlr
  • emberjs
  • reactjs

Topics

comment IRC Channel
email Mailing list

coala 2018 Projects

  • ksdme
    coala language server
    coala as a linting and code fixing tool can be far more useful when its power can be directly leveraged from within the code editor. Since all the...
  • Kriti Rohilla
    Commit content inspection project
    This project is about adding a verification process for the pull requests made to coala. There are many special types of commit messages that should...
  • Pareksha Manchanda
    Convert Bears to Aspects Project
    This project is part of adding the 'aspect' functionality to coala-bears. Through this functionality coala users will no longer have to worry about...
  • Nitanshu Vashistha
    corobo Enhancement
    corobo Enhancement The goal of this project is to make corobo secure by reducing its surface vulnerability. It also includes implementing a better...
  • Vaibhav Kumar Rai
    Debug and Profile Bears
    Debug and Profile Bears The aim of this project is to create a better quality Bears by creating a tool which will have the ability to jump directly...
  • Vamshi Krishna
    Implement GitMate automations and plugins for coala
    GitMate.io is an automation tool for developers. While it works well, there are a number of plugins which saves a lot of time of our community(for...
  • Saksham Bansal
    Improve Installation of coala and coala-bears
    The project focuses on improving coala's dependency management for installing bear and their dependencies on multiple platforms. Specifically, the...
  • Rahul Jha (~RJ722)
    Improve Whitelisting infrastructure for Vulture
    The following has been proposed to facilitate the user experience with whitelisting in Vulture: Create a command line tool which takes in sip files...
  • Ankit Joshi
    Integrate pyflakes-enhanced AST into coala
    The idea, here, is to integrate pyflakes-enhanced AST into coala as a metabear which can then be used to develop various plugins. The second part of...
  • Viresh Gupta
    Integration of ANTLRv4 into coala core
    This project aims to implement a library that integrates with the existing coala code and allows writing native bears for coala that can leverage the...
  • Boxuan Li
    Meta-review
    The goal of project meta-review is to track emoji responses to review comments. These responses would be collected, processed and displayed. This...
  • Shrikrishna Singh
    Newcomer metrics and gamification
    As coala tries to be welcoming organization for newcomers, giving them clear pathways and as much direct assistance as possible. However, it is...
  • Palash Nigam
    Optimize Caching (For Nextgen-Core)
    Integrate an optimized version of the current caching mechanism with the Nextgen core. The objective is to take the improvement suggested to...
  • Ishan Srivastava
    Quickstart Green Mode
    It is tough for a new user to quickly grasp and start using the settings provided by coala. The user needs to be aware of the bears he might possibly...
close

2018