Skip to content

Instantly share code, notes, and snippets.

@aviatesk
Created August 25, 2020 10:19
Show Gist options
  • Select an option

  • Save aviatesk/43dfd10f31e3b853cb36d9aab0b2e12c to your computer and use it in GitHub Desktop.

Select an option

Save aviatesk/43dfd10f31e3b853cb36d9aab0b2e12c to your computer and use it in GitHub Desktop.
# %%
using LanguageServer, CSTParser, StaticLint, SymbolServer
using LanguageServer: Range, TextDocumentIdentifier, TextDocumentPositionParams
const LS = LanguageServer
const SS = SymbolServer
server = let
pi = IOBuffer()
po = IOBuffer()
env = normpath(@__DIR__, "..", "scripts", "environments", "development")
depot = normpath(@__DIR__, "ls_depot")
server = LanguageServerInstance(pi, po, env, depot)
@async run(server)
init_str = read(joinpath(@__DIR__, "ls_init_str.json"), String)
init_params = LS.InitializeParams(LS.JSON.parse(init_str)["params"])
LanguageServer.initialize_request(init_params, server, nothing)
server
end
function str_to_lsdoc(text; uri = "none", server = server)
doc = LS.Document(uri, text, true, server)
LS.setdocument!(server, LS.URI2(uri), doc)
LS.parse_all(doc, server)
return doc
end
# %%
server.env_path
server.symbol_store
server.symbol_server
server.symbol_server.process
server.depot_path
# %%
@time SS.getstore(server.symbol_server, server.env_path)
@time SS.load_project_packages_into_store!(server.symbol_server, server.env_path, SS.recursive_copy(SS.stdlibs))
@time wait(LS.trigger_symbolstore_reload(server))
server.symbol_store
# %%
using LanguageServer: get_offset, Position
doc = str_to_lsdoc("""
a = sincos(1)
s = "jυλια"
""")
get_offset(doc, Position(0, 30))
@aviatesk

Copy link
Copy Markdown
Author

@reportdef

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment