wasp/waspls/waspls.cabal
Craig McIlwrath 485f92ca13
Implement autocompletion in waspls (#681)
* Refactor diagnostics

Now stores diagnostics info in the state instead of computing when diagnostics
are being published.

* Refactor Wasp.LSP.State into multiple files

* Move all LSP type imports to qualified

More consistent and more clear where things come from

* Use new concrete parser in diagnostics

Before running full analyzer, runs CST parser to check if it parses correctly
and to collect many parse errors. The CST is always put into the state. Then, if
successful, the full analyzer gets run as before.

* Add basic autocompletion

Always suggests every declaration name in the file, with no context-sensitivity.

* Refactor some names

* Syntax tree traversal code

* Attempt at context-sensitive autocomplete

Not done, but doing some more refactoring before going back to this

* Refactor Control.Syntax.Traverse to use total functions

* Make autocompletion context sensitive

It actually works now

* Miscellaneous code clean up

* Fix incorrect type name

* Fix syntax traversal bug with back

* Remove unreadable symbols from syntax traversal

* Refactor completion code

* Refactor syntax traversal code

* Apply suggestions from code review

Co-authored-by: Martin Šošić <Martinsos@users.noreply.github.com>

* Feedback from code review

* Add tests for Control.Monad.Loops.untilM

Co-authored-by: Martin Šošić <Martinsos@users.noreply.github.com>
2022-08-09 09:38:56 -04:00

126 lines
3.2 KiB
Plaintext

cabal-version: 2.4
-- TODO: It make sense in the future to move this into "waspc" project as a
-- separate project, but for now it is separated.
name: waspls
version: 0.1.0.0
description: Please see the README on GitHub at <https://github.com/wasp-lang/wasp/waspls#readme>
homepage: https://github.com/wasp-lang/wasp/waspls#readme
bug-reports: https://github.com/wasp-lang/wasp/issues
author: Wasp Team
maintainer: team@wasp-lang.dev
copyright: Wasp, Inc.
license: MIT
license-file: LICENSE
extra-source-files:
README.md
CHANGELOG.md
source-repository head
type: git
location: https://github.com/wasp-lang/wasp
common common-all
default-language: Haskell2010
ghc-options:
-Wall
-optP-Wno-nonportable-include-path
-fwrite-ide-info -hiedir=.hie
default-extensions:
OverloadedStrings
ScopedTypeVariables
FlexibleContexts
MultiParamTypeClasses
DisambiguateRecordFields
common common-exe
ghc-options:
-threaded -rtsopts -with-rtsopts=-N
library
import: common-all
exposed-modules:
Wasp.LSP.Server
Control.Monad.Loops
Control.Syntax.Traverse
Wasp.Backend.Token
Wasp.Backend.Lexer
Wasp.Backend.TokenSet
Wasp.Backend.ParseError
Wasp.Backend.ConcreteSyntax
Wasp.Backend.ConcreteParser
Wasp.Backend.ConcreteParser.Internal
other-modules:
Paths_waspls
Wasp.LSP.ServerState
Wasp.LSP.ServerConfig
Wasp.LSP.ServerM
Wasp.LSP.Handlers
Wasp.LSP.Diagnostic
Wasp.LSP.Completion
Wasp.LSP.Util
Wasp.LSP.Syntax
Wasp.Backend.Lexer.Internal
Wasp.Backend.Lexer.Lexer
hs-source-dirs:
src
build-tool-depends:
, alex:alex
build-depends:
, base ^>=4.14.3.0
, waspc
, lsp ^>=1.4.0.0
, lsp-types ^>=1.4.0.1
, containers ^>=0.6.5.1
, mtl ^>=2.2.2
, transformers ^>=0.5.6.2
, text ^>=1.2.4.1
, data-default ^>=0.7.1.1
, hslogger ^>=1.3.1.0
, aeson ^>=1.5.6
, lens ^>=5.1
, aeson-pretty ^>= 0.8
, utf8-string ^>= 1.0.2
-- 'array' is used by code generated by Alex for src/Analyzer/Parser/Lexer.x
, array ^>= 0.5.4
, deepseq
test-suite waspls-test
import: common-all, common-exe
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: TastyDiscoverDriver.hs
build-tool-depends:
, tasty-discover:tasty-discover
build-depends:
, base
, waspls
, deepseq
, containers ^>= 0.6.5
, Diff ^>= 0.4.1
, QuickCheck ^>= 2.14
, tasty ^>= 1.4.2
-- tasty-hspec 1.1.7 introduces breaking changes, which is why we have < 1.1.7 .
, tasty-hspec >= 1.1 && < 1.1.7
, tasty-quickcheck ^>= 0.10
other-modules:
TestUtil
Control.Syntax.TraverseTest
Control.Monad.LoopsTest
Wasp.Backend.LexerTest
Wasp.Backend.ConcreteParserTest
executable waspls
import: common-all, common-exe
main-is: Main.hs
other-modules:
Paths_waspls
hs-source-dirs:
exe
build-depends:
, base ^>=4.14.3.0
, optparse-applicative ^>=0.17.0.0
, waspls
default-language: Haskell2010