Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
name: codedown-languages

on:
pull_request:
push:
workflow_dispatch:

Expand Down
1 change: 1 addition & 0 deletions modules/kernels/bash/language_server_bash/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,5 @@ common.writeTextDirWithMetaAndPassthru bashLanguageServerWithMan.meta passthru "
"${bashLanguageServerWithMan}/bin/bash-language-server"
"start"
];
language_id = "shellscript";
}])
1 change: 1 addition & 0 deletions modules/kernels/clojure/language-server.nix
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,5 @@ common.writeTextDirWithMetaAndPassthru clojure-lsp.meta passthru "lib/codedown/l
type = "stream";
args = ["${clojure-lsp}/bin/clojure-lsp"];
env = {};
language_id = "clojure";
}])
1 change: 1 addition & 0 deletions modules/kernels/cpp/language_server_clangd/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,5 @@ common.writeTextDirWithMetaAndPassthru clangd.meta passthru "lib/codedown/langua
args = [
"${clangd}/bin/clangd"
];
language_id = "cpp";
}])
1 change: 1 addition & 0 deletions modules/kernels/go/language-server-gopls.nix
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ common.writeTextDirWithMetaAndPassthru gopls.meta passthru "lib/codedown/languag
type = "stream";
args = ["${goplsWrapped}/bin/gopls"];
env = {};
language_id = "go";
}])


Expand Down
2 changes: 2 additions & 0 deletions modules/kernels/haskell/language-server-hls/config.nix
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,8 @@ let
# checkParents = "CheckOnSave";
};
};

language_id = "haskell";
};

in
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,4 +81,5 @@ common.writeTextDirWithMetaAndPassthru python.pkgs.flake8.meta passthru "lib/cod
formatters = {};
formatFiletypes = {};
};
language_id = "python";
}])
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,5 @@ common.writeTextDirWithMetaAndPassthru jls.meta passthru "lib/codedown/language-
"/home/user/.local/${pythonEnv.sitePackages}"
];
};
language_id = "python";
}])
Original file line number Diff line number Diff line change
Expand Up @@ -88,4 +88,5 @@ common.writeTextDirWithMetaAndPassthru python-language-server.meta passthru "lib
initialization_options = overrideExisting initialization_options {
# cacheFolderPath = "${cache}/cache";
};
language_id = "python";
}])
Original file line number Diff line number Diff line change
Expand Up @@ -61,4 +61,5 @@ common.writeTextDirWithMetaAndPassthru python.pkgs.python-language-server.meta p
type = "stream";
args = ["${python}/bin/python" "-m" "pyls"];
initialization_options = import ../pylsp_initialization_options.nix "pyls";
language_id = "python";
}])
Original file line number Diff line number Diff line change
Expand Up @@ -80,4 +80,5 @@ common.writeTextDirWithMetaAndPassthru python.pkgs.pycodestyle.meta passthru "li
formatters = {};
formatFiletypes = {};
};
language_id = "python";
}])
Original file line number Diff line number Diff line change
Expand Up @@ -90,4 +90,5 @@ common.writeTextDirWithMetaAndPassthru python.pkgs.pylint.meta passthru "lib/cod
formatters = {};
formatFiletypes = {};
};
language_id = "python";
}])
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,6 @@ common.writeTextDirWithMetaAndPassthru pyright.meta passthru "lib/codedown/langu
# We need to send empty string, otherwise pyright-langserver fails with parse error
# "python.venvPath" = "";
};

language_id = "python";
}])
Original file line number Diff line number Diff line change
Expand Up @@ -62,4 +62,5 @@ common.writeTextDirWithMetaAndPassthru python.pkgs.python-lsp-server.meta passth
type = "stream";
args = ["${python}/bin/python" "-m" "pylsp"];
initialization_options = import ../pylsp_initialization_options.nix "pylsp";
language_id = "python";
}])
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,5 @@ common.writeTextDirWithMetaAndPassthru languageserver.meta passthru "lib/codedow
type = "stream";
primary = true;
args = ["${rWithPackagesAndLanguageServer}/bin/R" "--slave" "-e" "languageserver::run()"];
language_id = "r";
}])
1 change: 1 addition & 0 deletions modules/kernels/ruby/solargraph.nix
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,5 @@ common.writeTextDirWithMetaAndPassthru solargraph.meta passthru "lib/codedown/la
attrs = ["ruby"];
type = "stream";
args = ["${solargraph}/bin/solargraph" "stdio"];
language_id = "ruby";
}])
2 changes: 2 additions & 0 deletions modules/kernels/rust/language_server_rust_analyzer/config.nix
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,8 @@ let

# "RA_LOG" = "rust_analyzer=info";
};

language_id = "rust";
};

in
Expand Down
2 changes: 1 addition & 1 deletion tests/app/Spec/Tests/Bash.hs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ tests = describe "Bash" $ introduceNixEnvironment [kernelSpec] [] "Bash" $ intro
-- |] $ \diagnostics -> do
-- assertDiagnosticRanges diagnostics []

testDiagnostics "bash-language-server" "test.sh" Nothing [__i|FOO=42|] $ \diagnostics -> do
testDiagnostics "bash-language-server" "test.sh" LanguageKind_ShellScript [__i|FOO=42|] $ \diagnostics -> do
assertDiagnosticRanges diagnostics [
(Range (Position 0 0) (Position 0 3), Just (InR "SC2034"))
]
Expand Down
2 changes: 1 addition & 1 deletion tests/app/Spec/Tests/Clojure.hs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ tests = describe "Clojure" $ introduceNixEnvironment [kernelSpec] [] "Clojure" $

testKernelStdout "clojure" [__i|(println "hi")|] "hi\n"

testDiagnostics "clojure-lsp" "test.clj" Nothing [__i|(foo 42)|] $ \diagnostics -> do
testDiagnostics "clojure-lsp" "test.clj" LanguageKind_Clojure [__i|(foo 42)|] $ \diagnostics -> do
assertDiagnosticRanges diagnostics [(Range (Position 0 1) (Position 0 4), Just (InR "unresolved-symbol"))]


Expand Down
2 changes: 1 addition & 1 deletion tests/app/Spec/Tests/Cpp.hs
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ tests' flavor = describe [i|C++ (#{flavor})|] $ introduceNixEnvironment [kernelS
testsWithLsp :: Text -> LanguageSpec
testsWithLsp flavor = describe [i|C++ (#{flavor}) with LSP|] $ introduceNixEnvironment [kernelSpecWithLsp flavor] [] "C++" $ do
describe "LSP" $ do
testDiagnostics'' "simple" lsName "test.cpp" (Just "cpp")
testDiagnostics'' "simple" lsName "test.cpp" LanguageKind_CPP
[__i|int main() {
undefined_function();
return 0;
Expand Down
2 changes: 1 addition & 1 deletion tests/app/Spec/Tests/Go.hs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ tests = describe "Go" $ introduceNixEnvironment [kernelSpec] [] "Go" $ introduce
testKernelStdout "go" [__i|import("fmt")
fmt.Println("hi")|] "hi\n"

testDiagnosticsLabel "gopls: Undeclared name" "gopls" "test.go" Nothing printUnknownCode $ \diagnostics ->
testDiagnosticsLabel "gopls: Undeclared name" "gopls" "test.go" LanguageKind_Go printUnknownCode $ \diagnostics ->
assertDiagnosticRanges diagnostics [(Range (Position 3 12) (Position 3 15), Just (InR "UndeclaredName"))]

printUnknownCode :: Text
Expand Down
9 changes: 5 additions & 4 deletions tests/app/Spec/Tests/Haskell/CodeActions.hs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import Data.Text
import Language.LSP.Protocol.Lens hiding (actions)
import Language.LSP.Protocol.Types
import Language.LSP.Test hiding (message)
import qualified Language.LSP.Test.Helpers as Helpers
import Spec.Tests.Haskell.Common
import Test.Sandwich as Sandwich
import TestLib.LSP
Expand All @@ -17,13 +18,13 @@ import UnliftIO.Timeout

tests :: (LspContext context m, HasNixEnvironment context) => Text -> SpecFree context m ()
tests ghcPackage = describe "Code actions" $ do
it "gets no code actions for putStrLn" $ doNotebookSession lsName codeActionsCode $ \filename -> do
ident <- openDoc filename "haskell"
it "gets no code actions for putStrLn" $ doNotebookSession lsName codeActionsCode $ \(Helpers.LspSessionInfo {..}) -> do
ident <- openDoc lspSessionInfoFileName "haskell"
actions <- timeout 60_000_000 $ getCodeActions ident (Range (Position 1 0) (Position 1 8))
actions `shouldBe` (Just [])

it "gets code actions for foo" $ doNotebookSession lsName codeActionsCode $ \filename -> do
ident <- openDoc filename "haskell"
it "gets code actions for foo" $ doNotebookSession lsName codeActionsCode $ \(Helpers.LspSessionInfo {..}) -> do
ident <- openDoc lspSessionInfoFileName "haskell"
actions <- timeout 60_000_000 $ getCodeActions ident (Range (Position 0 0) (Position 0 3))
case ghcPackage of
x | x `L.elem` ["ghc910", "ghc912"] -> actions `shouldBe` (Just []) -- TODO: figure out why this is
Expand Down
12 changes: 6 additions & 6 deletions tests/app/Spec/Tests/Haskell/Diagnostics.hs
Original file line number Diff line number Diff line change
Expand Up @@ -27,26 +27,26 @@ import TestLib.Types
tests :: (LspContext context m, HasNixEnvironment context) => Text -> Text -> SpecFree context m ()
tests ghcPackage lsName = describe "Diagnostics" $ do
describe "Foo.hs" $ do
testDiagnosticsLabelDesired "Out of scope variable" lsName "Foo.hs" Nothing
testDiagnosticsLabelDesired "Out of scope variable" lsName "Foo.hs" LanguageKind_Haskell
[__i|module Foo where
foo = bar
|]
((== [(Range (Position 1 6) (Position 1 9), Just (InR "GHC-88464"))]) . getDiagnosticRanges)

when (ghcPackage /= "ghc910") $ -- TODO: re-enable hlint test
testDiagnosticsLabelDesired "Eta reduce" lsName "Foo.hs" Nothing etaExpandCode
testDiagnosticsLabelDesired "Eta reduce" lsName "Foo.hs" LanguageKind_Haskell etaExpandCode
((== [(Range (Position 6 0) (Position 6 14), Just (InR "refact:Eta reduce"))]) . getDiagnosticRanges)

describe "main.ipynb" $ do
testDiagnosticsLabelDesired "Top-level putStrLn" lsName "main.ipynb" Nothing
testDiagnosticsLabelDesired "Top-level putStrLn" lsName "main.ipynb" LanguageKind_Haskell
[__i|-- A comment
foo = bar

putStrLn "HI"
|]
((== [(Range (Position 1 6) (Position 1 9), Just (InR "GHC-88464"))]) . getDiagnosticRanges)

testDiagnosticsLabel "Top-level putStrLn with diagnostic" lsName "main.ipynb" Nothing
testDiagnosticsLabel "Top-level putStrLn with diagnostic" lsName "main.ipynb" LanguageKind_Haskell
[__i|-- Some comment
import Data.ByteString.Lazy.Char8 as BL
foo = bar
Expand All @@ -56,15 +56,15 @@ tests ghcPackage lsName = describe "Diagnostics" $ do
[(Range (Position 4 0) (Position 4 8), x)] | containsAll x ["Ambiguous occurrence", "putStrLn"] -> return ()
xs -> expectationFailure [i|Unexpected diagnostics: #{xs}|]

testDiagnosticsLabelDesired "Reordering" lsName "main.ipynb" Nothing
testDiagnosticsLabelDesired "Reordering" lsName "main.ipynb" LanguageKind_Haskell
[__i|import Data.Aeson.TH
{-\# LANGUAGE TemplateHaskell \#-}
foo = bar -- This should be the only diagnostic we get
data Foo = Bar | Baz
$(deriveJSON defaultOptions ''Foo)|]
((== [(Range (Position 2 6) (Position 2 9), Just (InR "GHC-88464"))]) . getDiagnosticRanges)

testDiagnosticsLabelDesired "Complicated reordering" lsName "main.ipynb" Nothing
testDiagnosticsLabelDesired "Complicated reordering" lsName "main.ipynb" LanguageKind_Haskell
[__i|import Data.Aeson as A
import Data.Aeson.TH
:set -XTemplateHaskell
Expand Down
9 changes: 5 additions & 4 deletions tests/app/Spec/Tests/Haskell/DocumentHighlight.hs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import Data.String.Interpolate
import Data.Text as T
import Language.LSP.Protocol.Types
import Language.LSP.Test hiding (message)
import qualified Language.LSP.Test.Helpers as Helpers
import Spec.Tests.Haskell.Common
import Test.Sandwich as Sandwich
import TestLib.LSP
Expand All @@ -18,12 +19,12 @@ import TestLib.Types

tests :: (LspContext context m, HasNixEnvironment context) => SpecFree context m ()
tests = describe "Document highlight" $ do
it "foo (.ipynb)" $ doNotebookSession lsName documentHighlightCode $ \filename -> do
ident <- openDoc filename "haskell"
it "foo (.ipynb)" $ doNotebookSession lsName documentHighlightCode $ \(Helpers.LspSessionInfo {..}) -> do
ident <- openDoc lspSessionInfoFileName "haskell"
getHighlights ident (Position 0 1) >>= (`shouldBe` documentHighlightResults)

it "foo (.hs)" $ doSession' "Test.hs" lsName documentHighlightCodeRegular $ \filename -> do
ident <- openDoc filename "haskell"
it "foo (.hs)" $ doSession' "Test.hs" lsName documentHighlightCodeRegular $ \(Helpers.LspSessionInfo {..}) -> do
ident <- openDoc lspSessionInfoFileName "haskell"
getHighlights ident (Position 0 1) >>= (
`shouldBe` [
DocumentHighlight (Range (Position 0 0) (Position 0 3)) (Just DocumentHighlightKind_Write)
Expand Down
9 changes: 5 additions & 4 deletions tests/app/Spec/Tests/Haskell/Hover.hs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import Data.Text as T
import Language.LSP.Protocol.Lens hiding (hover)
import Language.LSP.Protocol.Types
import Language.LSP.Test hiding (message)
import qualified Language.LSP.Test.Helpers as Helpers
import Spec.Tests.Haskell.Common
import Test.Sandwich as Sandwich
import TestLib.LSP
Expand All @@ -16,14 +17,14 @@ import TestLib.Types

tests :: (LspContext context m, HasNixEnvironment context) => SpecFree context m ()
tests = describe "Hover" $ do
it "hovers foo" $ doNotebookSession lsName hoverCode $ \filename -> do
ident <- openDoc filename "haskell"
it "hovers foo" $ doNotebookSession lsName hoverCode $ \(Helpers.LspSessionInfo {..}) -> do
ident <- openDoc lspSessionInfoFileName "haskell"
hover <- getHoverOrException ident (Position 0 1)
allHoverText hover `textShouldContain` [i|foo|]
allHoverText hover `textShouldContain` [i|main.ipynb.hs:1:1|]

it "hovers putStrLn" $ doNotebookSession lsName hoverCode $ \filename -> do
ident <- openDoc filename "haskell"
it "hovers putStrLn" $ doNotebookSession lsName hoverCode $ \(Helpers.LspSessionInfo {..}) -> do
ident <- openDoc lspSessionInfoFileName "haskell"
hover <- getHoverOrException ident (Position 1 1)
(hover ^. range) `shouldBe` Just (Range (Position 1 0) (Position 1 8))
let InL (MarkupContent {..}) = hover ^. contents
Expand Down
13 changes: 7 additions & 6 deletions tests/app/Spec/Tests/Haskell/Statements.hs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import Data.String.Interpolate
import Data.Text as T
import Language.LSP.Protocol.Types
import Language.LSP.Test hiding (message)
import qualified Language.LSP.Test.Helpers as Helpers
import Spec.Tests.Haskell.Common
import Spec.Tests.Haskell.DocumentHighlight (documentHighlightResults)
import Test.Sandwich as Sandwich
Expand All @@ -17,23 +18,23 @@ import UnliftIO.Timeout
tests :: (LspContext context m, HasNixEnvironment context) => Text -> SpecFree context m ()
tests ghcPackage = describe "Statements" $ do
describe "Single-line" $ do
it "doesn't choke" $ doNotebookSession lsName statementsCode $ \filename -> do
ident <- openDoc filename "haskell"
it "doesn't choke" $ doNotebookSession lsName statementsCode $ \(Helpers.LspSessionInfo {..}) -> do
ident <- openDoc lspSessionInfoFileName "haskell"
timeout 120_000_000 (getHighlights ident (Position 0 1)) >>= (`shouldBe` (Just documentHighlightResults))

when (ghcPackage /= "ghc910") $ -- TODO: re-enable hlint test
testDiagnosticsLabel "Empty diagnostics" lsName "main.ipynb" Nothing statementsCode $ \diagnostics -> do
testDiagnosticsLabel "Empty diagnostics" lsName "main.ipynb" LanguageKind_Haskell statementsCode $ \diagnostics -> do
-- Note: normally the server wouldn't send empty diagnostics. But the statement inserts "= unsafePerformIO $ ",
-- which causes it to emit a "redundant bracket" diagnostic, which then gets filtered out by untransformPosition
diagnostics `shouldBe` []

describe "Multi-line" $ do
it "doesn't choke" $ doNotebookSession lsName statementsCode $ \filename -> do
ident <- openDoc filename "haskell"
it "doesn't choke" $ doNotebookSession lsName statementsCode $ \(Helpers.LspSessionInfo {..}) -> do
ident <- openDoc lspSessionInfoFileName "haskell"
timeout 120_000_000 (getHighlights ident (Position 0 1)) >>= (`shouldBe` (Just documentHighlightResults))

when (ghcPackage /= "ghc910") $ -- TODO: re-enable hlint test
testDiagnosticsLabel "Redundant bracket" lsName "main.ipynb" Nothing statementsCodeMultiline $ \diagnostics -> do
testDiagnosticsLabel "Redundant bracket" lsName "main.ipynb" LanguageKind_Haskell statementsCodeMultiline $ \diagnostics -> do
info [i|Got diagnostics: #{diagnostics}|]
assertDiagnosticRanges diagnostics [(Range (Position 1 9) (Position 1 14), Just (InR "refact:Redundant bracket"))]

Expand Down
5 changes: 3 additions & 2 deletions tests/app/Spec/Tests/Haskell/Symbols.hs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ module Spec.Tests.Haskell.Symbols (tests) where
import Control.Lens ((^.))
import Language.LSP.Protocol.Lens hiding (actions)
import Language.LSP.Test hiding (message)
import qualified Language.LSP.Test.Helpers as Helpers
import Spec.Tests.Haskell.Common
import Spec.Tests.Haskell.DocumentHighlight (documentHighlightCode)
import Test.Sandwich as Sandwich
Expand All @@ -14,7 +15,7 @@ import UnliftIO.Timeout

tests :: (LspContext context m, HasNixEnvironment context) => SpecFree context m ()
tests = describe "Symbols" $ do
it "symbols" $ doNotebookSession lsName documentHighlightCode $ \filename -> do
ident <- openDoc filename "haskell"
it "symbols" $ doNotebookSession lsName documentHighlightCode $ \(Helpers.LspSessionInfo {..}) -> do
ident <- openDoc lspSessionInfoFileName "haskell"
Just (Right documentSymbols) <- timeout 300_000_000 $ getDocumentSymbols ident
fmap (^. name) documentSymbols `shouldBe` ["foo"]
7 changes: 4 additions & 3 deletions tests/app/Spec/Tests/Julia.hs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import Data.Text as T
import Language.LSP.Protocol.Lens hiding (diagnostics, hover, text)
import Language.LSP.Protocol.Types
import Language.LSP.Test hiding (message)
import qualified Language.LSP.Test.Helpers as Helpers
import Test.Sandwich as Sandwich
import TestLib.JupyterRunnerContext
import TestLib.LSP
Expand Down Expand Up @@ -45,12 +46,12 @@ juliaTests juliaPackage = describe [i|Julia (#{juliaPackage})|] $ introduceNixEn
describe "LSP" $ do
Diagnostics.tests lsName

itHasHoverSatisfying lsName "test.jl" (Just "julia") [__i|print("hi")|] (Position 0 2) $ \hover -> do
itHasHoverSatisfying lsName "test.jl" (LanguageKind_Custom "julia") [__i|print("hi")|] (Position 0 2) $ \hover -> do
let InL (MarkupContent MarkupKind_Markdown text) = hover ^. contents
text `textShouldContain` "Write to `io` (or to the default output stream"

it "highlights foo" $ doNotebookSession lsName documentHighlightCode $ \filename -> do
ident <- openDoc filename "julia"
it "highlights foo" $ doNotebookSession lsName documentHighlightCode $ \(Helpers.LspSessionInfo {..}) -> do
ident <- openDoc lspSessionInfoFileName "julia"
getHighlights ident (Position 0 1) >>= (`shouldBe` documentHighlightResults)


Expand Down
8 changes: 4 additions & 4 deletions tests/app/Spec/Tests/Julia/Diagnostics.hs
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,18 @@ import TestLib.Types

tests :: (LspContext context m, HasNixEnvironment context) => Text -> SpecFree context m ()
tests lsName = describe "Diagnostics" $ do
testDiagnostics'' "flags a simple missing reference" lsName "test.jl" (Just "julia") [i|printlnzzzz("HI")|] [] $ \diagnostics -> do
testDiagnostics'' "flags a simple missing reference" lsName "test.jl" (LanguageKind_Custom "julia") [i|printlnzzzz("HI")|] [] $ \diagnostics -> do
assertDiagnosticRanges' diagnostics [(Range (Position 0 0) (Position 0 11), Nothing, "Missing reference: printlnzzzz")]

testDiagnosticsLabelDesired "finds symbols from JSON3 package" lsName "test.jl" (Just "julia")
testDiagnosticsLabelDesired "finds symbols from JSON3 package" lsName "test.jl" (LanguageKind_Custom "julia")
[__i|using JSON3: write
tup = (:car,"Mercedes","S500",5,250.1)
write(tup)
printlnzzzz("HI")
|]
((== [(Range (Position 3 0) (Position 3 11), Nothing, "Missing reference: printlnzzzz")]) . getDiagnosticRanges')

testDiagnosticsLabelDesired "finds symbols from Roots package" lsName "test.jl" (Just "julia")
testDiagnosticsLabelDesired "finds symbols from Roots package" lsName "test.jl" (LanguageKind_Custom "julia")
[__i|using Roots: Bisection, find_zero
f(x) = exp(x) - x^4
find_zero(f, (8, 9), Bisection())
Expand All @@ -34,7 +34,7 @@ tests lsName = describe "Diagnostics" $ do

-- This test is tricky because symbols like "plot" actually come from RecipesBase (or something), so
-- it checks we're indexing such a transitive dependency.
testDiagnosticsLabelDesired "finds symbols from Plots package" lsName "test.jl" (Just "julia")
testDiagnosticsLabelDesired "finds symbols from Plots package" lsName "test.jl" (LanguageKind_Custom "julia")
[__i|using Plots: plot, plot!
xx = range(0, 10, length=100)
y = sin.(xx)
Expand Down
Loading
Loading