Investigate adhering to Microsoft Language Server Protocol
It may be interesting to look into adhering to the Microsoft Language Server Protocol. This would allow the core to be plugged into various other editors and IDE's that support the protocol as well.
This is very long-termish due to the sheer scope of adhering to the specification. It will require a rewrite of several aspects of the core, including (but not limited to):
- Moving tasks performed by the Atom packages to the core itself (code navigation, autocompletion, ...)
- Using
Position
andRange
everywhere, which use character offsets, not byte offsets - Rewriting commands that have been moved to the core to follow the structure and naming of the specification
- Supporting request cancelation
- Support
initialize
,shutdown
,exit
, etc. - Support listening for file changes sent by the client and reindex them (comparable to the current reindex command)
- ...
The protocol spec appeared around September 2015 - and was in its infancy for a long time after that - whilst the php-integrator Atom packages first appeared somewhere around October 2015 and even then it was a fork from another project which had been around a couple of months before that.
Edited by Gert