Linting and Fixing Code for All Languages

Technologies
python
Topics
code analysis
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.

2017 Program

Successful Projects

Contributor
Saurav Singh
Mentor
SanketDG, Niklas Meinzer
Organization
coala
Documentation Extraction & Parsing
To develop an analyzing routine at least for python and java that will find all documentation strings in a file, parse them into specific groups and...
Contributor
Meet Mangukiya
Mentor
Dmytro Sadovnychyi, Udayan Tandon
Organization
coala
cobot enhancement
coala community has grown substantially over last few months. To make it easier on maintainers to cope up and still be a welcoming community for new...
Contributor
Satwik Kansal
Mentor
Adrian-Gabriel Zatreanu, Adhityaa Chandrasekar
Organization
coala
Enhance coala-quickstart
coala is a modular and language-agnostic tool for performing static code analysis. The aim of coala is to make static code analysis easier for the...
Contributor
Hemang Kumar
Mentor
Lasse Schuirmann, fneu
Organization
coala
Improve coala Website and Supporting Tools
Currently, the coala Online module lacks support for all the bears. Bears with non-optional settings are ignored. The first goal of this project is...
Contributor
Adhika Setya Pramudita
Mentor
John Vandenberg, Steven Myint, userzimmermann
Organization
coala
coala: Implement Aspeca
Currently configuring coala on a new project is unnecessarily hard, especially for first time user. There are few reason for this. New users are not...
Contributor
Naveen Kumar Sangi
Mentor
Lasse Schuirmann, fneu
Organization
coala
Extending GitMatev2.0 to support GitLab and BitBucket
GitMate for all! This time with user configurable plugins! About the product GitHub, GitLab and BitBucket support webhooks for common events like...
Contributor
Alexandru-Sorin Maxim
Mentor
Muhammad Kaisar Arkhan, Adrian-Gabriel Zatreanu
Organization
coala
Improve the coala CLI
coala has come a long way from its early days in terms of its usability, although all the changes that have been made are improvisations. A proper...
Contributor
Rahul Jha [:RJ722]
Mentor
Jendrik
Organization
coala
Auto-removal of dead code through vulture
vulture is a tool which detects and reports dead (unused) code and coala is an automatic linter. The motivation of this proposal is to: Extend...
Contributor
Yash Nisar
Mentor
Mischa Krüger
Organization
coala
Extend Linter Integration
The aim of the project is to ease the process of testing bears in coala by significantly improving the testing API to yield favorable, easy to...