@wasm-idle/lsp 1.0.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -0
- package/dist/assemblyscript/index.d.ts +4 -0
- package/dist/assemblyscript/index.d.ts.map +1 -0
- package/dist/assemblyscript/index.js +4 -0
- package/dist/assemblyscript/index.js.map +1 -0
- package/dist/assemblyscript/server.d.ts +12 -0
- package/dist/assemblyscript/server.d.ts.map +1 -0
- package/dist/assemblyscript/server.js +15 -0
- package/dist/assemblyscript/server.js.map +1 -0
- package/dist/assemblyscript/service.d.ts +27 -0
- package/dist/assemblyscript/service.d.ts.map +1 -0
- package/dist/assemblyscript/service.js +220 -0
- package/dist/assemblyscript/service.js.map +1 -0
- package/dist/assemblyscript/worker.d.ts +2 -0
- package/dist/assemblyscript/worker.d.ts.map +1 -0
- package/dist/assemblyscript/worker.js +4 -0
- package/dist/assemblyscript/worker.js.map +1 -0
- package/dist/assets.d.ts +34 -0
- package/dist/assets.d.ts.map +1 -0
- package/dist/assets.js +96 -0
- package/dist/assets.js.map +1 -0
- package/dist/awk/index.d.ts +3 -0
- package/dist/awk/index.d.ts.map +1 -0
- package/dist/awk/index.js +3 -0
- package/dist/awk/index.js.map +1 -0
- package/dist/awk/server.d.ts +12 -0
- package/dist/awk/server.d.ts.map +1 -0
- package/dist/awk/server.js +15 -0
- package/dist/awk/server.js.map +1 -0
- package/dist/awk/service.d.ts +14 -0
- package/dist/awk/service.d.ts.map +1 -0
- package/dist/awk/service.js +162 -0
- package/dist/awk/service.js.map +1 -0
- package/dist/awk/worker.d.ts +2 -0
- package/dist/awk/worker.d.ts.map +1 -0
- package/dist/awk/worker.js +4 -0
- package/dist/awk/worker.js.map +1 -0
- package/dist/clangd/config.d.ts +20 -0
- package/dist/clangd/config.d.ts.map +1 -0
- package/dist/clangd/config.js +15 -0
- package/dist/clangd/config.js.map +1 -0
- package/dist/clangd/index.d.ts +4 -0
- package/dist/clangd/index.d.ts.map +1 -0
- package/dist/clangd/index.js +3 -0
- package/dist/clangd/index.js.map +1 -0
- package/dist/clangd/protocol.d.ts +27 -0
- package/dist/clangd/protocol.d.ts.map +1 -0
- package/dist/clangd/protocol.js +2 -0
- package/dist/clangd/protocol.js.map +1 -0
- package/dist/clangd/server.d.ts +10 -0
- package/dist/clangd/server.d.ts.map +1 -0
- package/dist/clangd/server.js +119 -0
- package/dist/clangd/server.js.map +1 -0
- package/dist/clangd/worker.d.ts +2 -0
- package/dist/clangd/worker.d.ts.map +1 -0
- package/dist/clangd/worker.js +178 -0
- package/dist/clangd/worker.js.map +1 -0
- package/dist/d/index.d.ts +3 -0
- package/dist/d/index.d.ts.map +1 -0
- package/dist/d/index.js +3 -0
- package/dist/d/index.js.map +1 -0
- package/dist/d/server.d.ts +12 -0
- package/dist/d/server.d.ts.map +1 -0
- package/dist/d/server.js +17 -0
- package/dist/d/server.js.map +1 -0
- package/dist/d/service.d.ts +38 -0
- package/dist/d/service.d.ts.map +1 -0
- package/dist/d/service.js +240 -0
- package/dist/d/service.js.map +1 -0
- package/dist/d/worker.d.ts +2 -0
- package/dist/d/worker.d.ts.map +1 -0
- package/dist/d/worker.js +4 -0
- package/dist/d/worker.js.map +1 -0
- package/dist/document/index.d.ts +3 -0
- package/dist/document/index.d.ts.map +1 -0
- package/dist/document/index.js +3 -0
- package/dist/document/index.js.map +1 -0
- package/dist/document/server.d.ts +21 -0
- package/dist/document/server.d.ts.map +1 -0
- package/dist/document/server.js +21 -0
- package/dist/document/server.js.map +1 -0
- package/dist/document/service.d.ts +7 -0
- package/dist/document/service.d.ts.map +1 -0
- package/dist/document/service.js +381 -0
- package/dist/document/service.js.map +1 -0
- package/dist/document/worker.d.ts +2 -0
- package/dist/document/worker.d.ts.map +1 -0
- package/dist/document/worker.js +4 -0
- package/dist/document/worker.js.map +1 -0
- package/dist/dotnet/index.d.ts +3 -0
- package/dist/dotnet/index.d.ts.map +1 -0
- package/dist/dotnet/index.js +3 -0
- package/dist/dotnet/index.js.map +1 -0
- package/dist/dotnet/server.d.ts +12 -0
- package/dist/dotnet/server.d.ts.map +1 -0
- package/dist/dotnet/server.js +52 -0
- package/dist/dotnet/server.js.map +1 -0
- package/dist/dotnet/service.d.ts +42 -0
- package/dist/dotnet/service.d.ts.map +1 -0
- package/dist/dotnet/service.js +353 -0
- package/dist/dotnet/service.js.map +1 -0
- package/dist/dotnet/worker.d.ts +2 -0
- package/dist/dotnet/worker.d.ts.map +1 -0
- package/dist/dotnet/worker.js +22 -0
- package/dist/dotnet/worker.js.map +1 -0
- package/dist/elixir/index.d.ts +3 -0
- package/dist/elixir/index.d.ts.map +1 -0
- package/dist/elixir/index.js +3 -0
- package/dist/elixir/index.js.map +1 -0
- package/dist/elixir/server.d.ts +12 -0
- package/dist/elixir/server.d.ts.map +1 -0
- package/dist/elixir/server.js +16 -0
- package/dist/elixir/server.js.map +1 -0
- package/dist/elixir/service.d.ts +21 -0
- package/dist/elixir/service.d.ts.map +1 -0
- package/dist/elixir/service.js +200 -0
- package/dist/elixir/service.js.map +1 -0
- package/dist/elixir/worker.d.ts +2 -0
- package/dist/elixir/worker.d.ts.map +1 -0
- package/dist/elixir/worker.js +4 -0
- package/dist/elixir/worker.js.map +1 -0
- package/dist/erlang/index.d.ts +3 -0
- package/dist/erlang/index.d.ts.map +1 -0
- package/dist/erlang/index.js +3 -0
- package/dist/erlang/index.js.map +1 -0
- package/dist/erlang/server.d.ts +12 -0
- package/dist/erlang/server.d.ts.map +1 -0
- package/dist/erlang/server.js +16 -0
- package/dist/erlang/server.js.map +1 -0
- package/dist/erlang/worker.d.ts +2 -0
- package/dist/erlang/worker.d.ts.map +1 -0
- package/dist/erlang/worker.js +4 -0
- package/dist/erlang/worker.js.map +1 -0
- package/dist/fortran/index.d.ts +3 -0
- package/dist/fortran/index.d.ts.map +1 -0
- package/dist/fortran/index.js +3 -0
- package/dist/fortran/index.js.map +1 -0
- package/dist/fortran/server.d.ts +11 -0
- package/dist/fortran/server.d.ts.map +1 -0
- package/dist/fortran/server.js +15 -0
- package/dist/fortran/server.js.map +1 -0
- package/dist/fortran/service.d.ts +17 -0
- package/dist/fortran/service.d.ts.map +1 -0
- package/dist/fortran/service.js +152 -0
- package/dist/fortran/service.js.map +1 -0
- package/dist/fortran/worker.d.ts +2 -0
- package/dist/fortran/worker.d.ts.map +1 -0
- package/dist/fortran/worker.js +4 -0
- package/dist/fortran/worker.js.map +1 -0
- package/dist/gleam/index.d.ts +3 -0
- package/dist/gleam/index.d.ts.map +1 -0
- package/dist/gleam/index.js +3 -0
- package/dist/gleam/index.js.map +1 -0
- package/dist/gleam/server.d.ts +9 -0
- package/dist/gleam/server.d.ts.map +1 -0
- package/dist/gleam/server.js +17 -0
- package/dist/gleam/server.js.map +1 -0
- package/dist/gleam/service.d.ts +17 -0
- package/dist/gleam/service.d.ts.map +1 -0
- package/dist/gleam/service.js +186 -0
- package/dist/gleam/service.js.map +1 -0
- package/dist/gleam/worker.d.ts +2 -0
- package/dist/gleam/worker.d.ts.map +1 -0
- package/dist/gleam/worker.js +4 -0
- package/dist/gleam/worker.js.map +1 -0
- package/dist/go/index.d.ts +3 -0
- package/dist/go/index.d.ts.map +1 -0
- package/dist/go/index.js +3 -0
- package/dist/go/index.js.map +1 -0
- package/dist/go/server.d.ts +13 -0
- package/dist/go/server.d.ts.map +1 -0
- package/dist/go/server.js +19 -0
- package/dist/go/server.js.map +1 -0
- package/dist/go/service.d.ts +8 -0
- package/dist/go/service.d.ts.map +1 -0
- package/dist/go/service.js +84 -0
- package/dist/go/service.js.map +1 -0
- package/dist/go/worker.d.ts +2 -0
- package/dist/go/worker.d.ts.map +1 -0
- package/dist/go/worker.js +4 -0
- package/dist/go/worker.js.map +1 -0
- package/dist/graphql/index.d.ts +3 -0
- package/dist/graphql/index.d.ts.map +1 -0
- package/dist/graphql/index.js +3 -0
- package/dist/graphql/index.js.map +1 -0
- package/dist/graphql/server.d.ts +11 -0
- package/dist/graphql/server.d.ts.map +1 -0
- package/dist/graphql/server.js +15 -0
- package/dist/graphql/server.js.map +1 -0
- package/dist/graphql/service.d.ts +6 -0
- package/dist/graphql/service.d.ts.map +1 -0
- package/dist/graphql/service.js +138 -0
- package/dist/graphql/service.js.map +1 -0
- package/dist/graphql/worker.d.ts +2 -0
- package/dist/graphql/worker.d.ts.map +1 -0
- package/dist/graphql/worker.js +4 -0
- package/dist/graphql/worker.js.map +1 -0
- package/dist/haskell/index.d.ts +3 -0
- package/dist/haskell/index.d.ts.map +1 -0
- package/dist/haskell/index.js +3 -0
- package/dist/haskell/index.js.map +1 -0
- package/dist/haskell/server.d.ts +15 -0
- package/dist/haskell/server.d.ts.map +1 -0
- package/dist/haskell/server.js +21 -0
- package/dist/haskell/server.js.map +1 -0
- package/dist/haskell/service.d.ts +46 -0
- package/dist/haskell/service.d.ts.map +1 -0
- package/dist/haskell/service.js +448 -0
- package/dist/haskell/service.js.map +1 -0
- package/dist/haskell/worker.d.ts +2 -0
- package/dist/haskell/worker.d.ts.map +1 -0
- package/dist/haskell/worker.js +4 -0
- package/dist/haskell/worker.js.map +1 -0
- package/dist/index.d.ts +43 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +38 -0
- package/dist/index.js.map +1 -0
- package/dist/janet/index.d.ts +3 -0
- package/dist/janet/index.d.ts.map +1 -0
- package/dist/janet/index.js +3 -0
- package/dist/janet/index.js.map +1 -0
- package/dist/janet/server.d.ts +12 -0
- package/dist/janet/server.d.ts.map +1 -0
- package/dist/janet/server.js +15 -0
- package/dist/janet/server.js.map +1 -0
- package/dist/janet/service.d.ts +14 -0
- package/dist/janet/service.d.ts.map +1 -0
- package/dist/janet/service.js +154 -0
- package/dist/janet/service.js.map +1 -0
- package/dist/janet/worker.d.ts +2 -0
- package/dist/janet/worker.d.ts.map +1 -0
- package/dist/janet/worker.js +4 -0
- package/dist/janet/worker.js.map +1 -0
- package/dist/jsonrpc.d.ts +6 -0
- package/dist/jsonrpc.d.ts.map +1 -0
- package/dist/jsonrpc.js +5 -0
- package/dist/jsonrpc.js.map +1 -0
- package/dist/lisp/index.d.ts +3 -0
- package/dist/lisp/index.d.ts.map +1 -0
- package/dist/lisp/index.js +3 -0
- package/dist/lisp/index.js.map +1 -0
- package/dist/lisp/server.d.ts +10 -0
- package/dist/lisp/server.d.ts.map +1 -0
- package/dist/lisp/server.js +14 -0
- package/dist/lisp/server.js.map +1 -0
- package/dist/lisp/service.d.ts +34 -0
- package/dist/lisp/service.d.ts.map +1 -0
- package/dist/lisp/service.js +294 -0
- package/dist/lisp/service.js.map +1 -0
- package/dist/lisp/worker.d.ts +2 -0
- package/dist/lisp/worker.d.ts.map +1 -0
- package/dist/lisp/worker.js +4 -0
- package/dist/lisp/worker.js.map +1 -0
- package/dist/lsp.d.ts +63 -0
- package/dist/lsp.d.ts.map +1 -0
- package/dist/lsp.js +322 -0
- package/dist/lsp.js.map +1 -0
- package/dist/lua/index.d.ts +3 -0
- package/dist/lua/index.d.ts.map +1 -0
- package/dist/lua/index.js +3 -0
- package/dist/lua/index.js.map +1 -0
- package/dist/lua/server.d.ts +10 -0
- package/dist/lua/server.d.ts.map +1 -0
- package/dist/lua/server.js +14 -0
- package/dist/lua/server.js.map +1 -0
- package/dist/lua/service.d.ts +30 -0
- package/dist/lua/service.d.ts.map +1 -0
- package/dist/lua/service.js +188 -0
- package/dist/lua/service.js.map +1 -0
- package/dist/lua/worker.d.ts +2 -0
- package/dist/lua/worker.d.ts.map +1 -0
- package/dist/lua/worker.js +4 -0
- package/dist/lua/worker.js.map +1 -0
- package/dist/ocaml/index.d.ts +3 -0
- package/dist/ocaml/index.d.ts.map +1 -0
- package/dist/ocaml/index.js +3 -0
- package/dist/ocaml/index.js.map +1 -0
- package/dist/ocaml/server.d.ts +16 -0
- package/dist/ocaml/server.d.ts.map +1 -0
- package/dist/ocaml/server.js +21 -0
- package/dist/ocaml/server.js.map +1 -0
- package/dist/ocaml/service.d.ts +48 -0
- package/dist/ocaml/service.d.ts.map +1 -0
- package/dist/ocaml/service.js +357 -0
- package/dist/ocaml/service.js.map +1 -0
- package/dist/ocaml/worker.d.ts +2 -0
- package/dist/ocaml/worker.d.ts.map +1 -0
- package/dist/ocaml/worker.js +4 -0
- package/dist/ocaml/worker.js.map +1 -0
- package/dist/octave/index.d.ts +3 -0
- package/dist/octave/index.d.ts.map +1 -0
- package/dist/octave/index.js +3 -0
- package/dist/octave/index.js.map +1 -0
- package/dist/octave/server.d.ts +13 -0
- package/dist/octave/server.d.ts.map +1 -0
- package/dist/octave/server.js +16 -0
- package/dist/octave/server.js.map +1 -0
- package/dist/octave/service.d.ts +15 -0
- package/dist/octave/service.d.ts.map +1 -0
- package/dist/octave/service.js +174 -0
- package/dist/octave/service.js.map +1 -0
- package/dist/octave/worker.d.ts +2 -0
- package/dist/octave/worker.d.ts.map +1 -0
- package/dist/octave/worker.js +4 -0
- package/dist/octave/worker.js.map +1 -0
- package/dist/optional-provider-services.d.ts +9 -0
- package/dist/optional-provider-services.d.ts.map +1 -0
- package/dist/optional-provider-services.js +46 -0
- package/dist/optional-provider-services.js.map +1 -0
- package/dist/pascal/index.d.ts +3 -0
- package/dist/pascal/index.d.ts.map +1 -0
- package/dist/pascal/index.js +3 -0
- package/dist/pascal/index.js.map +1 -0
- package/dist/pascal/server.d.ts +12 -0
- package/dist/pascal/server.d.ts.map +1 -0
- package/dist/pascal/server.js +15 -0
- package/dist/pascal/server.js.map +1 -0
- package/dist/pascal/service.d.ts +14 -0
- package/dist/pascal/service.d.ts.map +1 -0
- package/dist/pascal/service.js +201 -0
- package/dist/pascal/service.js.map +1 -0
- package/dist/pascal/worker.d.ts +2 -0
- package/dist/pascal/worker.d.ts.map +1 -0
- package/dist/pascal/worker.js +4 -0
- package/dist/pascal/worker.js.map +1 -0
- package/dist/perl/index.d.ts +3 -0
- package/dist/perl/index.d.ts.map +1 -0
- package/dist/perl/index.js +3 -0
- package/dist/perl/index.js.map +1 -0
- package/dist/perl/server.d.ts +12 -0
- package/dist/perl/server.d.ts.map +1 -0
- package/dist/perl/server.js +15 -0
- package/dist/perl/server.js.map +1 -0
- package/dist/perl/service.d.ts +14 -0
- package/dist/perl/service.d.ts.map +1 -0
- package/dist/perl/service.js +159 -0
- package/dist/perl/service.js.map +1 -0
- package/dist/perl/worker.d.ts +2 -0
- package/dist/perl/worker.d.ts.map +1 -0
- package/dist/perl/worker.js +4 -0
- package/dist/perl/worker.js.map +1 -0
- package/dist/progress.d.ts +5 -0
- package/dist/progress.d.ts.map +1 -0
- package/dist/progress.js +47 -0
- package/dist/progress.js.map +1 -0
- package/dist/prolog/index.d.ts +3 -0
- package/dist/prolog/index.d.ts.map +1 -0
- package/dist/prolog/index.js +3 -0
- package/dist/prolog/index.js.map +1 -0
- package/dist/prolog/server.d.ts +12 -0
- package/dist/prolog/server.d.ts.map +1 -0
- package/dist/prolog/server.js +15 -0
- package/dist/prolog/server.js.map +1 -0
- package/dist/prolog/service.d.ts +14 -0
- package/dist/prolog/service.d.ts.map +1 -0
- package/dist/prolog/service.js +102 -0
- package/dist/prolog/service.js.map +1 -0
- package/dist/prolog/worker.d.ts +2 -0
- package/dist/prolog/worker.d.ts.map +1 -0
- package/dist/prolog/worker.js +4 -0
- package/dist/prolog/worker.js.map +1 -0
- package/dist/python/index.d.ts +3 -0
- package/dist/python/index.d.ts.map +1 -0
- package/dist/python/index.js +2 -0
- package/dist/python/index.js.map +1 -0
- package/dist/python/package/wasm_idle_python_lsp/__init__.py +3 -0
- package/dist/python/package/wasm_idle_python_lsp/server.py +480 -0
- package/dist/python/protocol.d.ts +28 -0
- package/dist/python/protocol.d.ts.map +1 -0
- package/dist/python/protocol.js +2 -0
- package/dist/python/protocol.js.map +1 -0
- package/dist/python/server.d.ts +10 -0
- package/dist/python/server.d.ts.map +1 -0
- package/dist/python/server.js +69 -0
- package/dist/python/server.js.map +1 -0
- package/dist/python/worker.d.ts +2 -0
- package/dist/python/worker.d.ts.map +1 -0
- package/dist/python/worker.js +99 -0
- package/dist/python/worker.js.map +1 -0
- package/dist/r/index.d.ts +3 -0
- package/dist/r/index.d.ts.map +1 -0
- package/dist/r/index.js +3 -0
- package/dist/r/index.js.map +1 -0
- package/dist/r/server.d.ts +11 -0
- package/dist/r/server.d.ts.map +1 -0
- package/dist/r/server.js +14 -0
- package/dist/r/server.js.map +1 -0
- package/dist/r/service.d.ts +16 -0
- package/dist/r/service.d.ts.map +1 -0
- package/dist/r/service.js +199 -0
- package/dist/r/service.js.map +1 -0
- package/dist/r/worker.d.ts +2 -0
- package/dist/r/worker.d.ts.map +1 -0
- package/dist/r/worker.js +4 -0
- package/dist/r/worker.js.map +1 -0
- package/dist/registry.d.ts +3 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +159 -0
- package/dist/registry.js.map +1 -0
- package/dist/ruby/index.d.ts +4 -0
- package/dist/ruby/index.d.ts.map +1 -0
- package/dist/ruby/index.js +4 -0
- package/dist/ruby/index.js.map +1 -0
- package/dist/ruby/server.d.ts +12 -0
- package/dist/ruby/server.d.ts.map +1 -0
- package/dist/ruby/server.js +15 -0
- package/dist/ruby/server.js.map +1 -0
- package/dist/ruby/service.d.ts +18 -0
- package/dist/ruby/service.d.ts.map +1 -0
- package/dist/ruby/service.js +216 -0
- package/dist/ruby/service.js.map +1 -0
- package/dist/ruby/worker.d.ts +2 -0
- package/dist/ruby/worker.d.ts.map +1 -0
- package/dist/ruby/worker.js +4 -0
- package/dist/ruby/worker.js.map +1 -0
- package/dist/runtime-worker.d.ts +12 -0
- package/dist/runtime-worker.d.ts.map +1 -0
- package/dist/runtime-worker.js +28 -0
- package/dist/runtime-worker.js.map +1 -0
- package/dist/runtime.d.ts +47 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +470 -0
- package/dist/runtime.js.map +1 -0
- package/dist/rust/index.d.ts +3 -0
- package/dist/rust/index.d.ts.map +1 -0
- package/dist/rust/index.js +3 -0
- package/dist/rust/index.js.map +1 -0
- package/dist/rust/server.d.ts +14 -0
- package/dist/rust/server.d.ts.map +1 -0
- package/dist/rust/server.js +20 -0
- package/dist/rust/server.js.map +1 -0
- package/dist/rust/service.d.ts +9 -0
- package/dist/rust/service.d.ts.map +1 -0
- package/dist/rust/service.js +87 -0
- package/dist/rust/service.js.map +1 -0
- package/dist/rust/worker.d.ts +2 -0
- package/dist/rust/worker.d.ts.map +1 -0
- package/dist/rust/worker.js +4 -0
- package/dist/rust/worker.js.map +1 -0
- package/dist/sql/index.d.ts +5 -0
- package/dist/sql/index.d.ts.map +1 -0
- package/dist/sql/index.js +4 -0
- package/dist/sql/index.js.map +1 -0
- package/dist/sql/server.d.ts +17 -0
- package/dist/sql/server.d.ts.map +1 -0
- package/dist/sql/server.js +37 -0
- package/dist/sql/server.js.map +1 -0
- package/dist/sql/service.d.ts +22 -0
- package/dist/sql/service.d.ts.map +1 -0
- package/dist/sql/service.js +258 -0
- package/dist/sql/service.js.map +1 -0
- package/dist/sql/worker.d.ts +2 -0
- package/dist/sql/worker.d.ts.map +1 -0
- package/dist/sql/worker.js +4 -0
- package/dist/sql/worker.js.map +1 -0
- package/dist/static-worker-service.d.ts +29 -0
- package/dist/static-worker-service.d.ts.map +1 -0
- package/dist/static-worker-service.js +51 -0
- package/dist/static-worker-service.js.map +1 -0
- package/dist/tcl/index.d.ts +3 -0
- package/dist/tcl/index.d.ts.map +1 -0
- package/dist/tcl/index.js +3 -0
- package/dist/tcl/index.js.map +1 -0
- package/dist/tcl/server.d.ts +12 -0
- package/dist/tcl/server.d.ts.map +1 -0
- package/dist/tcl/server.js +15 -0
- package/dist/tcl/server.js.map +1 -0
- package/dist/tcl/service.d.ts +14 -0
- package/dist/tcl/service.d.ts.map +1 -0
- package/dist/tcl/service.js +144 -0
- package/dist/tcl/service.js.map +1 -0
- package/dist/tcl/worker.d.ts +2 -0
- package/dist/tcl/worker.d.ts.map +1 -0
- package/dist/tcl/worker.js +4 -0
- package/dist/tcl/worker.js.map +1 -0
- package/dist/types.d.ts +160 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/typescript/index.d.ts +3 -0
- package/dist/typescript/index.d.ts.map +1 -0
- package/dist/typescript/index.js +3 -0
- package/dist/typescript/index.js.map +1 -0
- package/dist/typescript/server.d.ts +15 -0
- package/dist/typescript/server.d.ts.map +1 -0
- package/dist/typescript/server.js +24 -0
- package/dist/typescript/server.js.map +1 -0
- package/dist/typescript/service.d.ts +18 -0
- package/dist/typescript/service.d.ts.map +1 -0
- package/dist/typescript/service.js +348 -0
- package/dist/typescript/service.js.map +1 -0
- package/dist/typescript/worker.d.ts +2 -0
- package/dist/typescript/worker.d.ts.map +1 -0
- package/dist/typescript/worker.js +4 -0
- package/dist/typescript/worker.js.map +1 -0
- package/dist/wasm/index.d.ts +3 -0
- package/dist/wasm/index.d.ts.map +1 -0
- package/dist/wasm/index.js +3 -0
- package/dist/wasm/index.js.map +1 -0
- package/dist/wasm/server.d.ts +8 -0
- package/dist/wasm/server.d.ts.map +1 -0
- package/dist/wasm/server.js +11 -0
- package/dist/wasm/server.js.map +1 -0
- package/dist/wasm/service.d.ts +4 -0
- package/dist/wasm/service.d.ts.map +1 -0
- package/dist/wasm/service.js +202 -0
- package/dist/wasm/service.js.map +1 -0
- package/dist/wasm/worker.d.ts +2 -0
- package/dist/wasm/worker.d.ts.map +1 -0
- package/dist/wasm/worker.js +4 -0
- package/dist/wasm/worker.js.map +1 -0
- package/dist/wat/index.d.ts +3 -0
- package/dist/wat/index.d.ts.map +1 -0
- package/dist/wat/index.js +3 -0
- package/dist/wat/index.js.map +1 -0
- package/dist/wat/server.d.ts +8 -0
- package/dist/wat/server.d.ts.map +1 -0
- package/dist/wat/server.js +13 -0
- package/dist/wat/server.js.map +1 -0
- package/dist/wat/service.d.ts +6 -0
- package/dist/wat/service.d.ts.map +1 -0
- package/dist/wat/service.js +226 -0
- package/dist/wat/service.js.map +1 -0
- package/dist/wat/worker.d.ts +2 -0
- package/dist/wat/worker.d.ts.map +1 -0
- package/dist/wat/worker.js +4 -0
- package/dist/wat/worker.js.map +1 -0
- package/dist/worker-client.d.ts +33 -0
- package/dist/worker-client.d.ts.map +1 -0
- package/dist/worker-client.js +108 -0
- package/dist/worker-client.js.map +1 -0
- package/dist/zig/index.d.ts +3 -0
- package/dist/zig/index.d.ts.map +1 -0
- package/dist/zig/index.js +3 -0
- package/dist/zig/index.js.map +1 -0
- package/dist/zig/server.d.ts +14 -0
- package/dist/zig/server.d.ts.map +1 -0
- package/dist/zig/server.js +19 -0
- package/dist/zig/server.js.map +1 -0
- package/dist/zig/service.d.ts +45 -0
- package/dist/zig/service.d.ts.map +1 -0
- package/dist/zig/service.js +447 -0
- package/dist/zig/service.js.map +1 -0
- package/dist/zig/worker.d.ts +2 -0
- package/dist/zig/worker.d.ts.map +1 -0
- package/dist/zig/worker.js +4 -0
- package/dist/zig/worker.js.map +1 -0
- package/package.json +288 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/elixir/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/elixir/worker.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/elixir/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEvD,yBAAyB,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { getErlangLanguageServer, type ErlangLanguageServerOptions } from './server.js';
|
|
2
|
+
export { createBeamWorkerService, type BeamDiagnosticRunnerRequest, type BeamDiagnosticRunnerResult, type BeamLanguageServerLanguage, type BeamWorkerOptions, type RunBeamDiagnostics } from '../elixir/service.js';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/erlang/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,KAAK,2BAA2B,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EACN,uBAAuB,EACvB,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/erlang/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAoC,MAAM,aAAa,CAAC;AACxF,OAAO,EACN,uBAAuB,EAMvB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { EditorLanguageServerOptions, EditorLanguageServerRuntimeOptions } from '../types.js';
|
|
2
|
+
import { type LanguageServerStatus } from '../worker-client.js';
|
|
3
|
+
export interface ErlangLanguageServerConfig {
|
|
4
|
+
bundleUrl?: string;
|
|
5
|
+
workerUrl?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface ErlangLanguageServerOptions extends EditorLanguageServerRuntimeOptions {
|
|
8
|
+
createWorker?: () => Worker;
|
|
9
|
+
onStatus?: (status: LanguageServerStatus) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare function getErlangLanguageServer(options?: EditorLanguageServerOptions | ErlangLanguageServerOptions): Promise<import("../types.js").EditorLanguageServerHandle>;
|
|
12
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/erlang/server.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,2BAA2B,EAAE,kCAAkC,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,EAAoC,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAElG,MAAM,WAAW,0BAA0B;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,2BAA4B,SAAQ,kCAAkC;IACtF,YAAY,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;CAClD;AAKD,wBAAsB,uBAAuB,CAC5C,OAAO,CAAC,EAAE,2BAA2B,GAAG,2BAA2B,6DAanE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { resolveErlangLanguageServerBundleUrl, resolveErlangLanguageServerWorkerUrl } from '../runtime.js';
|
|
2
|
+
import { createWorkerLanguageServerClient } from '../worker-client.js';
|
|
3
|
+
const createDefaultWorker = () => new Worker(new URL('./worker.js', import.meta.url), { type: 'module' });
|
|
4
|
+
export async function getErlangLanguageServer(options) {
|
|
5
|
+
const hostOptions = typeof options === 'object' ? options : undefined;
|
|
6
|
+
return await createWorkerLanguageServerClient({
|
|
7
|
+
createWorker: hostOptions?.createWorker || createDefaultWorker,
|
|
8
|
+
initOptions: {
|
|
9
|
+
language: 'erlang',
|
|
10
|
+
bundleUrl: resolveErlangLanguageServerBundleUrl(options, hostOptions?.currentUrl),
|
|
11
|
+
workerUrl: resolveErlangLanguageServerWorkerUrl(options, hostOptions?.currentUrl)
|
|
12
|
+
},
|
|
13
|
+
onStatus: hostOptions?.onStatus
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/erlang/server.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,oCAAoC,EACpC,oCAAoC,EACpC,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,gCAAgC,EAA6B,MAAM,qBAAqB,CAAC;AAYlG,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAChC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AAEzE,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC5C,OAAmE;IAEnE,MAAM,WAAW,GAChB,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAE,OAAuC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,OAAO,MAAM,gCAAgC,CAAC;QAC7C,YAAY,EAAE,WAAW,EAAE,YAAY,IAAI,mBAAmB;QAC9D,WAAW,EAAE;YACZ,QAAQ,EAAE,QAAQ;YAClB,SAAS,EAAE,oCAAoC,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC;YACjF,SAAS,EAAE,oCAAoC,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC;SACjF;QACD,QAAQ,EAAE,WAAW,EAAE,QAAQ;KAC/B,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/erlang/worker.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/erlang/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,yBAAyB,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { getFortranLanguageServer, type FortranLanguageServerConfig, type FortranLanguageServerOptions } from './server.js';
|
|
2
|
+
export { createFortranWorkerService, type FortranAnalyzer, type FortranAnalyzerDiagnostic, type FortranWorkerOptions, type LoadFortranAnalyzer } from './service.js';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fortran/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,wBAAwB,EACxB,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,0BAA0B,EAC1B,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fortran/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,wBAAwB,EAGxB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,0BAA0B,EAK1B,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { EditorLanguageServerOptions, EditorLanguageServerRuntimeOptions } from '../types.js';
|
|
2
|
+
import { type LanguageServerStatus } from '../worker-client.js';
|
|
3
|
+
export interface FortranLanguageServerConfig {
|
|
4
|
+
analyzerUrl?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface FortranLanguageServerOptions extends EditorLanguageServerRuntimeOptions {
|
|
7
|
+
createWorker?: () => Worker;
|
|
8
|
+
onStatus?: (status: LanguageServerStatus) => void;
|
|
9
|
+
}
|
|
10
|
+
export declare function getFortranLanguageServer(options?: EditorLanguageServerOptions | FortranLanguageServerOptions): Promise<import("../types.js").EditorLanguageServerHandle>;
|
|
11
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/fortran/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,kCAAkC,EAAE,MAAM,aAAa,CAAC;AAEnG,OAAO,EAAoC,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAElG,MAAM,WAAW,2BAA2B;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,4BAA6B,SAAQ,kCAAkC;IACvF,YAAY,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;CAClD;AAKD,wBAAsB,wBAAwB,CAC7C,OAAO,CAAC,EAAE,2BAA2B,GAAG,4BAA4B,6DAapE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { resolveFortranLanguageServerAnalyzerUrl } from '../runtime.js';
|
|
2
|
+
import { createWorkerLanguageServerClient } from '../worker-client.js';
|
|
3
|
+
const createDefaultWorker = () => new Worker(new URL('./worker.js', import.meta.url), { type: 'module' });
|
|
4
|
+
export async function getFortranLanguageServer(options) {
|
|
5
|
+
const hostOptions = typeof options === 'object' ? options : undefined;
|
|
6
|
+
const analyzerUrl = resolveFortranLanguageServerAnalyzerUrl(options, hostOptions?.currentUrl);
|
|
7
|
+
return await createWorkerLanguageServerClient({
|
|
8
|
+
createWorker: hostOptions?.createWorker || createDefaultWorker,
|
|
9
|
+
initOptions: {
|
|
10
|
+
analyzerUrl
|
|
11
|
+
},
|
|
12
|
+
onStatus: hostOptions?.onStatus
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/fortran/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uCAAuC,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,gCAAgC,EAA6B,MAAM,qBAAqB,CAAC;AAWlG,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAChC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AAEzE,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC7C,OAAoE;IAEpE,MAAM,WAAW,GAChB,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAE,OAAwC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrF,MAAM,WAAW,GAAG,uCAAuC,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IAE9F,OAAO,MAAM,gCAAgC,CAAC;QAC7C,YAAY,EAAE,WAAW,EAAE,YAAY,IAAI,mBAAmB;QAC9D,WAAW,EAAE;YACZ,WAAW;SACX;QACD,QAAQ,EAAE,WAAW,EAAE,QAAQ;KAC/B,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type WorkerLanguageService } from '../lsp.js';
|
|
2
|
+
export interface FortranWorkerOptions {
|
|
3
|
+
analyzerUrl?: string;
|
|
4
|
+
}
|
|
5
|
+
export interface FortranAnalyzerDiagnostic {
|
|
6
|
+
message: string;
|
|
7
|
+
lineNumber?: number;
|
|
8
|
+
columnNumber?: number;
|
|
9
|
+
severity?: 'error' | 'warning' | 'info';
|
|
10
|
+
}
|
|
11
|
+
export interface FortranAnalyzer {
|
|
12
|
+
analyze(code: string, fileName: string): Promise<FortranAnalyzerDiagnostic[]> | FortranAnalyzerDiagnostic[];
|
|
13
|
+
dispose?: () => void | Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
export type LoadFortranAnalyzer = (options: FortranWorkerOptions) => Promise<FortranAnalyzer>;
|
|
16
|
+
export declare function createFortranWorkerService(loadAnalyzer?: LoadFortranAnalyzer): WorkerLanguageService;
|
|
17
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/fortran/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,KAAK,qBAAqB,EAC1B,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,oBAAoB;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;CACxC;AAED,MAAM,WAAW,eAAe;IAC/B,OAAO,CACN,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC,yBAAyB,EAAE,CAAC,GAAG,yBAAyB,EAAE,CAAC;IACtE,OAAO,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC;AAED,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;AAiF9F,wBAAgB,0BAA0B,CACzC,YAAY,GAAE,mBAA0C,GACtD,qBAAqB,CAmFvB"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
const FORTRAN_KEYWORDS = [
|
|
2
|
+
'program',
|
|
3
|
+
'module',
|
|
4
|
+
'subroutine',
|
|
5
|
+
'function',
|
|
6
|
+
'implicit none',
|
|
7
|
+
'integer',
|
|
8
|
+
'real',
|
|
9
|
+
'complex',
|
|
10
|
+
'logical',
|
|
11
|
+
'character',
|
|
12
|
+
'parameter',
|
|
13
|
+
'allocatable',
|
|
14
|
+
'do',
|
|
15
|
+
'if',
|
|
16
|
+
'then',
|
|
17
|
+
'else',
|
|
18
|
+
'select case',
|
|
19
|
+
'contains',
|
|
20
|
+
'end',
|
|
21
|
+
'use',
|
|
22
|
+
'call',
|
|
23
|
+
'print',
|
|
24
|
+
'read',
|
|
25
|
+
'write'
|
|
26
|
+
];
|
|
27
|
+
const FORTRAN_HOVER = {
|
|
28
|
+
program: 'Defines a main Fortran program unit.',
|
|
29
|
+
module: 'Defines a module containing declarations and procedures.',
|
|
30
|
+
subroutine: 'Defines a procedure called with CALL.',
|
|
31
|
+
function: 'Defines a procedure that returns a value.',
|
|
32
|
+
'implicit none': 'Requires explicit declarations for identifiers.',
|
|
33
|
+
contains: 'Separates a program unit from its internal procedures.',
|
|
34
|
+
allocatable: 'Marks an object whose storage can be allocated dynamically.'
|
|
35
|
+
};
|
|
36
|
+
async function loadExternalAnalyzer(options) {
|
|
37
|
+
if (!options.analyzerUrl) {
|
|
38
|
+
throw new Error('Fortran language server requires analyzerUrl');
|
|
39
|
+
}
|
|
40
|
+
const module = await import(/* @vite-ignore */ options.analyzerUrl);
|
|
41
|
+
const factory = typeof module.createFortranAnalyzer === 'function'
|
|
42
|
+
? module.createFortranAnalyzer
|
|
43
|
+
: typeof module.default === 'function'
|
|
44
|
+
? module.default
|
|
45
|
+
: null;
|
|
46
|
+
if (!factory) {
|
|
47
|
+
throw new Error('Fortran analyzer module must export createFortranAnalyzer or a default factory');
|
|
48
|
+
}
|
|
49
|
+
return await factory();
|
|
50
|
+
}
|
|
51
|
+
const wordAt = (text, position) => {
|
|
52
|
+
const line = text.split('\n')[position.line] || '';
|
|
53
|
+
const character = Math.max(0, Math.min(position.character, line.length));
|
|
54
|
+
return ((line.slice(0, character).match(/[A-Za-z_][A-Za-z0-9_]*$/u)?.[0] || '') +
|
|
55
|
+
(line.slice(character).match(/^[A-Za-z0-9_]*/u)?.[0] || '')).toLowerCase();
|
|
56
|
+
};
|
|
57
|
+
const diagnosticFor = (diagnostic) => {
|
|
58
|
+
const line = Math.max(0, Number(diagnostic.lineNumber || 1) - 1);
|
|
59
|
+
const character = Math.max(0, Number(diagnostic.columnNumber || 1) - 1);
|
|
60
|
+
return {
|
|
61
|
+
range: {
|
|
62
|
+
start: { line, character },
|
|
63
|
+
end: { line, character: character + 1 }
|
|
64
|
+
},
|
|
65
|
+
severity: diagnostic.severity === 'warning' ? 2 : diagnostic.severity === 'info' ? 3 : 1,
|
|
66
|
+
source: 'fortran',
|
|
67
|
+
message: diagnostic.message
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
export function createFortranWorkerService(loadAnalyzer = loadExternalAnalyzer) {
|
|
71
|
+
let analyzer = null;
|
|
72
|
+
let lastKey = '';
|
|
73
|
+
let lastDiagnostics = [];
|
|
74
|
+
return {
|
|
75
|
+
name: 'wasm-idle-fortran-lsp',
|
|
76
|
+
diagnosticDelay: 250,
|
|
77
|
+
capabilities: {
|
|
78
|
+
completionProvider: { triggerCharacters: [' ', ':', '%'] },
|
|
79
|
+
hoverProvider: true,
|
|
80
|
+
documentSymbolProvider: true
|
|
81
|
+
},
|
|
82
|
+
async initialize(options, context) {
|
|
83
|
+
const config = (options || {});
|
|
84
|
+
context.reportProgress('load-fortran-analyzer');
|
|
85
|
+
analyzer = await loadAnalyzer(config);
|
|
86
|
+
},
|
|
87
|
+
async diagnostics(document) {
|
|
88
|
+
if (!analyzer)
|
|
89
|
+
return [];
|
|
90
|
+
const key = `${document.uri}\n${document.text}`;
|
|
91
|
+
if (key === lastKey)
|
|
92
|
+
return lastDiagnostics;
|
|
93
|
+
lastKey = key;
|
|
94
|
+
const diagnostics = await analyzer.analyze(document.text, document.uri.split('/').pop() || 'main.f90');
|
|
95
|
+
lastDiagnostics = diagnostics.map(diagnosticFor);
|
|
96
|
+
return lastDiagnostics;
|
|
97
|
+
},
|
|
98
|
+
completion() {
|
|
99
|
+
return {
|
|
100
|
+
isIncomplete: false,
|
|
101
|
+
items: FORTRAN_KEYWORDS.map((label) => ({
|
|
102
|
+
label,
|
|
103
|
+
kind: 14,
|
|
104
|
+
detail: FORTRAN_HOVER[label] || 'Fortran keyword'
|
|
105
|
+
}))
|
|
106
|
+
};
|
|
107
|
+
},
|
|
108
|
+
hover(document, position) {
|
|
109
|
+
const word = wordAt(document.text, position);
|
|
110
|
+
const description = FORTRAN_HOVER[word];
|
|
111
|
+
if (!description)
|
|
112
|
+
return null;
|
|
113
|
+
return {
|
|
114
|
+
contents: {
|
|
115
|
+
kind: 'markdown',
|
|
116
|
+
value: `\`${word}\`\n\n${description}`
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
},
|
|
120
|
+
documentSymbols(document) {
|
|
121
|
+
const symbols = [];
|
|
122
|
+
const pattern = /^\s*(program|module|subroutine|function)\s+([A-Za-z_][A-Za-z0-9_]*)/gimu;
|
|
123
|
+
for (const match of document.text.matchAll(pattern)) {
|
|
124
|
+
const offset = match.index || 0;
|
|
125
|
+
const before = document.text.slice(0, offset);
|
|
126
|
+
const line = before.split('\n').length - 1;
|
|
127
|
+
const character = offset - before.lastIndexOf('\n') - 1;
|
|
128
|
+
symbols.push({
|
|
129
|
+
name: match[2],
|
|
130
|
+
kind: match[1].toLowerCase() === 'module' ? 2 : 12,
|
|
131
|
+
range: {
|
|
132
|
+
start: { line, character },
|
|
133
|
+
end: { line, character: character + match[0].length }
|
|
134
|
+
},
|
|
135
|
+
selectionRange: {
|
|
136
|
+
start: { line, character: character + match[0].indexOf(match[2]) },
|
|
137
|
+
end: {
|
|
138
|
+
line,
|
|
139
|
+
character: character + match[0].indexOf(match[2]) + match[2].length
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
return symbols;
|
|
145
|
+
},
|
|
146
|
+
async dispose() {
|
|
147
|
+
await analyzer?.dispose?.();
|
|
148
|
+
analyzer = null;
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/fortran/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/fortran/worker.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/fortran/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE1D,yBAAyB,CAAC,0BAA0B,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { createGleamWorkerService, resolveGleamCompilerUrl, type GleamCompiler, type GleamWorkerOptions, type LoadGleamCompiler } from './service.js';
|
|
2
|
+
export { getGleamLanguageServer, type GleamLanguageServerOptions } from './server.js';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/gleam/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,wBAAwB,EACxB,uBAAuB,EACvB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,sBAAsB,EAAE,KAAK,0BAA0B,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/gleam/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,wBAAwB,EACxB,uBAAuB,EAIvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,sBAAsB,EAAmC,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { EditorLanguageServerOptions, EditorLanguageServerRuntimeOptions } from '../types.js';
|
|
2
|
+
import { type LanguageServerStatus } from '../worker-client.js';
|
|
3
|
+
export interface GleamLanguageServerOptions extends EditorLanguageServerRuntimeOptions {
|
|
4
|
+
createWorker?: () => Worker;
|
|
5
|
+
currentUrl?: string;
|
|
6
|
+
onStatus?: (status: LanguageServerStatus) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function getGleamLanguageServer(options?: EditorLanguageServerOptions | GleamLanguageServerOptions): Promise<import("../types.js").EditorLanguageServerHandle>;
|
|
9
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/gleam/server.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,2BAA2B,EAAE,kCAAkC,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,EAAoC,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAElG,MAAM,WAAW,0BAA2B,SAAQ,kCAAkC;IACrF,YAAY,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;CAClD;AAOD,wBAAsB,sBAAsB,CAC3C,OAAO,CAAC,EAAE,2BAA2B,GAAG,0BAA0B,6DAalE"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { resolveGleamLanguageServerBaseUrl, resolveGleamLanguageServerManifestUrl } from '../runtime.js';
|
|
2
|
+
import { createWorkerLanguageServerClient } from '../worker-client.js';
|
|
3
|
+
const createDefaultWorker = () => new Worker(new URL('./worker.js', import.meta.url), { type: 'module' });
|
|
4
|
+
const currentUrl = () => globalThis.location?.href || '';
|
|
5
|
+
export async function getGleamLanguageServer(options) {
|
|
6
|
+
const hostOptions = typeof options === 'object' ? options : undefined;
|
|
7
|
+
const baseUrl = hostOptions?.currentUrl ?? currentUrl();
|
|
8
|
+
return await createWorkerLanguageServerClient({
|
|
9
|
+
createWorker: hostOptions?.createWorker || createDefaultWorker,
|
|
10
|
+
initOptions: {
|
|
11
|
+
baseUrl: resolveGleamLanguageServerBaseUrl(options, baseUrl),
|
|
12
|
+
manifestUrl: resolveGleamLanguageServerManifestUrl(options, baseUrl)
|
|
13
|
+
},
|
|
14
|
+
onStatus: hostOptions?.onStatus
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/gleam/server.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,iCAAiC,EACjC,qCAAqC,EACrC,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,gCAAgC,EAA6B,MAAM,qBAAqB,CAAC;AAQlG,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAChC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AAEzE,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC;AAEzD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC3C,OAAkE;IAElE,MAAM,WAAW,GAChB,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAE,OAAsC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnF,MAAM,OAAO,GAAG,WAAW,EAAE,UAAU,IAAI,UAAU,EAAE,CAAC;IACxD,OAAO,MAAM,gCAAgC,CAAC;QAC7C,YAAY,EAAE,WAAW,EAAE,YAAY,IAAI,mBAAmB;QAC9D,WAAW,EAAE;YACZ,OAAO,EAAE,iCAAiC,CAAC,OAAO,EAAE,OAAO,CAAC;YAC5D,WAAW,EAAE,qCAAqC,CAAC,OAAO,EAAE,OAAO,CAAC;SACpE;QACD,QAAQ,EAAE,WAAW,EAAE,QAAQ;KAC/B,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type WorkerLanguageService } from '../lsp.js';
|
|
2
|
+
export interface GleamWorkerOptions {
|
|
3
|
+
baseUrl: string;
|
|
4
|
+
manifestUrl?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface GleamCompiler {
|
|
7
|
+
reset_filesystem(projectId: number): void;
|
|
8
|
+
delete_project?(projectId: number): void;
|
|
9
|
+
write_file(projectId: number, path: string, content: string): void;
|
|
10
|
+
write_module(projectId: number, moduleName: string, code: string): void;
|
|
11
|
+
compile_package(projectId: number, target: string): void;
|
|
12
|
+
default?(wasmUrl: string): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
export type LoadGleamCompiler = (baseUrl: string) => Promise<GleamCompiler>;
|
|
15
|
+
export declare function resolveGleamCompilerUrl(baseUrl: string): string;
|
|
16
|
+
export declare function createGleamWorkerService(loadCompiler?: LoadGleamCompiler): WorkerLanguageService;
|
|
17
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/gleam/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAEvF,MAAM,WAAW,kBAAkB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC7B,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,cAAc,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACnE,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACxE,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACzD,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;AAmC5E,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,UAEtD;AA2FD,wBAAgB,wBAAwB,CACvC,YAAY,GAAE,iBAA4C,GACxD,qBAAqB,CAgEvB"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { positionAt } from '../lsp.js';
|
|
2
|
+
const GLEAM_KEYWORDS = [
|
|
3
|
+
'as',
|
|
4
|
+
'assert',
|
|
5
|
+
'case',
|
|
6
|
+
'const',
|
|
7
|
+
'echo',
|
|
8
|
+
'fn',
|
|
9
|
+
'if',
|
|
10
|
+
'import',
|
|
11
|
+
'let',
|
|
12
|
+
'opaque',
|
|
13
|
+
'panic',
|
|
14
|
+
'pub',
|
|
15
|
+
'todo',
|
|
16
|
+
'type',
|
|
17
|
+
'use'
|
|
18
|
+
];
|
|
19
|
+
const stdinModuleSource = `@external(javascript, "./stdin_ffi.mjs", "read_line")
|
|
20
|
+
pub fn read_line() -> String
|
|
21
|
+
`;
|
|
22
|
+
const stdinFfiSource = `export function read_line() {
|
|
23
|
+
return "";
|
|
24
|
+
}
|
|
25
|
+
`;
|
|
26
|
+
let nextProjectId = 0;
|
|
27
|
+
function assetUrl(baseUrl, path) {
|
|
28
|
+
return new URL(path, baseUrl).href;
|
|
29
|
+
}
|
|
30
|
+
export function resolveGleamCompilerUrl(baseUrl) {
|
|
31
|
+
return assetUrl(baseUrl, 'compiler/gleam_wasm.js');
|
|
32
|
+
}
|
|
33
|
+
async function defaultLoadGleamCompiler(baseUrl) {
|
|
34
|
+
const compiler = (await import(
|
|
35
|
+
/* @vite-ignore */ resolveGleamCompilerUrl(baseUrl)));
|
|
36
|
+
if (typeof compiler.default === 'function') {
|
|
37
|
+
await compiler.default(assetUrl(baseUrl, 'compiler/gleam_wasm_bg.wasm'));
|
|
38
|
+
}
|
|
39
|
+
return compiler;
|
|
40
|
+
}
|
|
41
|
+
async function fetchJson(url) {
|
|
42
|
+
const response = await fetch(url, { cache: 'no-store' });
|
|
43
|
+
if (!response.ok)
|
|
44
|
+
throw new Error(`Failed to load Gleam source manifest: ${response.status}`);
|
|
45
|
+
return await response.json();
|
|
46
|
+
}
|
|
47
|
+
async function fetchText(url) {
|
|
48
|
+
const response = await fetch(url);
|
|
49
|
+
if (!response.ok)
|
|
50
|
+
throw new Error(`Failed to load ${url}: ${response.status}`);
|
|
51
|
+
return await response.text();
|
|
52
|
+
}
|
|
53
|
+
function normalizeWorkspacePath(path) {
|
|
54
|
+
const parts = [];
|
|
55
|
+
for (const part of String(path || '')
|
|
56
|
+
.replace(/^\/+/, '')
|
|
57
|
+
.split('/')) {
|
|
58
|
+
if (!part || part === '.' || part === '..' || part.includes('\0'))
|
|
59
|
+
continue;
|
|
60
|
+
parts.push(part);
|
|
61
|
+
}
|
|
62
|
+
return parts.join('/');
|
|
63
|
+
}
|
|
64
|
+
function moduleNameFromUri(uri) {
|
|
65
|
+
let path = uri;
|
|
66
|
+
try {
|
|
67
|
+
path = decodeURIComponent(new URL(uri).pathname);
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
path = uri;
|
|
71
|
+
}
|
|
72
|
+
const normalized = normalizeWorkspacePath(path.replace(/^\/?workspace\//u, ''));
|
|
73
|
+
const withoutPrefix = normalized.startsWith('src/') ? normalized.slice(4) : normalized;
|
|
74
|
+
const fileName = withoutPrefix.split('/').pop() || 'main.gleam';
|
|
75
|
+
if (withoutPrefix.endsWith('.gleam'))
|
|
76
|
+
return withoutPrefix.slice(0, -'.gleam'.length);
|
|
77
|
+
if (fileName.endsWith('.gleam'))
|
|
78
|
+
return fileName.slice(0, -'.gleam'.length);
|
|
79
|
+
return 'main';
|
|
80
|
+
}
|
|
81
|
+
async function collectStdlibSources(baseUrl, manifest) {
|
|
82
|
+
const sources = new Map();
|
|
83
|
+
const files = Array.isArray(manifest?.files)
|
|
84
|
+
? manifest.files
|
|
85
|
+
: [];
|
|
86
|
+
for (const entry of files) {
|
|
87
|
+
const path = typeof entry === 'string' ? entry : entry?.path;
|
|
88
|
+
if (typeof path !== 'string' || !path.endsWith('.gleam'))
|
|
89
|
+
continue;
|
|
90
|
+
sources.set(path, await fetchText(assetUrl(baseUrl, `src/${path}`)));
|
|
91
|
+
}
|
|
92
|
+
return sources;
|
|
93
|
+
}
|
|
94
|
+
function diagnosticFromError(error, text) {
|
|
95
|
+
const message = error instanceof Error ? error.message : String(error || 'Gleam compilation failed');
|
|
96
|
+
const match = /(?:^|\n)[^\n]*?([\w./-]+\.gleam):(\d+):(\d+)/u.exec(message);
|
|
97
|
+
if (!match) {
|
|
98
|
+
return {
|
|
99
|
+
range: {
|
|
100
|
+
start: positionAt(text, 0),
|
|
101
|
+
end: positionAt(text, Math.min(text.length, 1))
|
|
102
|
+
},
|
|
103
|
+
severity: 1,
|
|
104
|
+
source: 'gleam',
|
|
105
|
+
message
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
const line = Math.max(0, Number(match[2]) - 1);
|
|
109
|
+
const character = Math.max(0, Number(match[3]) - 1);
|
|
110
|
+
return {
|
|
111
|
+
range: {
|
|
112
|
+
start: { line, character },
|
|
113
|
+
end: { line, character: character + 1 }
|
|
114
|
+
},
|
|
115
|
+
severity: 1,
|
|
116
|
+
source: 'gleam',
|
|
117
|
+
message
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
export function createGleamWorkerService(loadCompiler = defaultLoadGleamCompiler) {
|
|
121
|
+
let compiler = null;
|
|
122
|
+
let baseUrl = '';
|
|
123
|
+
let manifestUrl = '';
|
|
124
|
+
let stdlibSources = new Map();
|
|
125
|
+
let lastKey = '';
|
|
126
|
+
let lastDiagnostics = [];
|
|
127
|
+
return {
|
|
128
|
+
name: 'wasm-idle-gleam-lsp',
|
|
129
|
+
diagnosticDelay: 700,
|
|
130
|
+
capabilities: {
|
|
131
|
+
completionProvider: { triggerCharacters: ['.', ' '] }
|
|
132
|
+
},
|
|
133
|
+
async initialize(options, context) {
|
|
134
|
+
const config = (options || {});
|
|
135
|
+
if (!config.baseUrl)
|
|
136
|
+
throw new Error('Gleam language server requires a baseUrl');
|
|
137
|
+
baseUrl = config.baseUrl;
|
|
138
|
+
manifestUrl = config.manifestUrl || assetUrl(baseUrl, 'source-manifest.v1.json');
|
|
139
|
+
context.reportProgress('load-gleam-compiler');
|
|
140
|
+
compiler = await loadCompiler(baseUrl);
|
|
141
|
+
const manifest = await fetchJson(manifestUrl);
|
|
142
|
+
stdlibSources = await collectStdlibSources(baseUrl, manifest);
|
|
143
|
+
},
|
|
144
|
+
async diagnostics(document, context) {
|
|
145
|
+
if (!compiler)
|
|
146
|
+
return [];
|
|
147
|
+
if (!document.text.trim())
|
|
148
|
+
return [];
|
|
149
|
+
const key = `${baseUrl}\n${manifestUrl}\n${document.uri}\n${document.text}`;
|
|
150
|
+
if (key === lastKey)
|
|
151
|
+
return lastDiagnostics;
|
|
152
|
+
context.reportProgress('gleam-diagnostics');
|
|
153
|
+
const projectId = ++nextProjectId;
|
|
154
|
+
try {
|
|
155
|
+
compiler.reset_filesystem(projectId);
|
|
156
|
+
compiler.write_file(projectId, '/gleam.toml', 'name = "wasm_idle"\\nversion = "0.1.0"\\ntarget = "javascript"\\n');
|
|
157
|
+
for (const [path, source] of stdlibSources) {
|
|
158
|
+
compiler.write_file(projectId, `/src/${path}`, source);
|
|
159
|
+
}
|
|
160
|
+
compiler.write_file(projectId, '/src/wasm_idle/stdin.gleam', stdinModuleSource);
|
|
161
|
+
compiler.write_file(projectId, '/src/wasm_idle/stdin_ffi.mjs', stdinFfiSource);
|
|
162
|
+
compiler.write_module(projectId, moduleNameFromUri(document.uri), document.text);
|
|
163
|
+
compiler.compile_package(projectId, 'javascript');
|
|
164
|
+
lastDiagnostics = [];
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
lastDiagnostics = [diagnosticFromError(error, document.text)];
|
|
168
|
+
}
|
|
169
|
+
finally {
|
|
170
|
+
compiler.delete_project?.(projectId);
|
|
171
|
+
}
|
|
172
|
+
lastKey = key;
|
|
173
|
+
return lastDiagnostics;
|
|
174
|
+
},
|
|
175
|
+
completion() {
|
|
176
|
+
return {
|
|
177
|
+
isIncomplete: false,
|
|
178
|
+
items: GLEAM_KEYWORDS.map((keyword) => ({
|
|
179
|
+
label: keyword,
|
|
180
|
+
kind: 14
|
|
181
|
+
}))
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=service.js.map
|