-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Design Goals
This page lists ALE design goals, in no particular order.
ALE code should be almost 100% VimL. This makes the plugin as portable as possible. If we were to consider writing plugin code in any other language, Python might be considered, but writing the plugin in pure VimL avoid problems with Python installations, etc.
ALE should run without needing any other plugins to be installed, to make installation simple. ALE can integrate with other plugins for more advanced functionality, non-essential functionality, or improving on basic first party functionality.
ALE should check files with as many tools as possible by default, except where they cause security issues or perhaps if they utterly kill machines.
ALE should be free of breaking changes to the public API, which is comprised of documented functions and options, until a major version is planned. Breaking changes should be preceded by a deprecation phase complete with warnings. Changes required for security may be an exception.
Just about everything should be documented and covered with tests.
By and large, people shouldn't pay for the functionality they don't use. Care should be taken when adding new features so supporting new features doesn't degrade the general linting performance.
LSP support will become more important as time goes on. ALE should provide better support for LSP features as time goes on.