1:- module(language_client, [
    2  stdio_language_connector/1,
    3  with_stdio_language/2,
    4  with_tcp_language/3,
    5
    6  initialize/2,
    7  initialized/1,
    8  shutdown/2,
    9  exit/1
   10  ]).   11
   12:- reexport('./jsonrpc/client').   13
   14stdio_language_connector(stdio(Program, Args)) :-
   15  Program = path(swipl),
   16  Args = [
   17    '-s',
   18    'run.pl',
   19    '-g',
   20    'run_stdio_language_server'
   21  ].
   22
   23with_stdio_language(Connection, Goal) :-
   24  stdio_language_connector(Connector),
   25  with_connection(Connector, Connection, Goal).
   26
   27tcp_language_connector(Port, tcp('127.0.0.1':Port)).
   28
   29with_tcp_language(Port, Connection, Goal) :-
   30  tcp_language_connector(Port, Connector),
   31  with_connection(Connector, Connection, Goal).
   32
   33initialize(Connection,Result) :-
   34  call_method(Connection,initialize,[],Result).
   35
   36initialized(Connection) :-
   37  notify_method(Connection,initialized,[]).
   38
   39shutdown(Connection,Result) :-
   40  call_method(Connection,shutdown,[],Result).
   41
   42exit(Connection) :-
   43  notify_method(Connection,shutdown,[])