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,[])