LSP
----

It should work the same way as any of our other tools, such as `jarcat`.

command: plz tool lsp
.. or it should just work on installation/bootstrap of plz



main.go
-------
- parse arguments
    - mode: stdio/tcp
    - address: listen to tcp address ':4389'


langserver
----------------
this directory should contain everything about the language server

- jsonRPC
- Responses:
    - result of requests sent by *client*
    - ResponseMessage: id, result, error
    - success: result should be nil

functionalities:
    - completion.go
        - handled completion
    - Analyzer.go
        - analyzes project build_defs
    - Handler.go
        - handles requests
        - should be the same structure as please.go
            - a map for different requests


Ideas
-----
- there should be a binary called build-langserver
    - ~/.please/build-langserver
- integration with IDE



Completion
----------
- build labels
- build_def functions,
- arg suggestions
- ******plz query completion******


BINARY
------
Add to package/BUILD


cli
----
--mode: tcp or stdio, default stdio
--host: 127.0.0.20
--port: 4387



lsp
-----------------

specs.go
- This file will have all the specification structs
- TODO: Decide if I need to add createFile options


init.go
- initialize request structs
- handles initialization of the request


Wishlist
--------
