Skip to content

Commit ecd8828

Browse files
committed
resolve merge issues
1 parent 49b4587 commit ecd8828

File tree

2 files changed

+3
-113
lines changed

2 files changed

+3
-113
lines changed

plugins/hls-cabal-plugin/src/Ide/Plugin/Cabal.hs

Lines changed: 3 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import qualified Data.ByteString as BS
1717
import Data.Hashable
1818
import Data.HashMap.Strict (HashMap)
1919
import qualified Data.HashMap.Strict as HashMap
20-
import Data.List (find)
2120
import qualified Data.List.NonEmpty as NE
2221
import qualified Data.Maybe as Maybe
2322
import qualified Data.Text as T
@@ -47,42 +46,14 @@ import Ide.Plugin.Cabal.Completion.Types (ParseCabalCommon
4746
ParseCabalFields (..),
4847
ParseCabalFile (..))
4948
import qualified Ide.Plugin.Cabal.Completion.Types as Types
49+
import Ide.Plugin.Cabal.Definition (gotoDefinition)
5050
import qualified Ide.Plugin.Cabal.Diagnostics as Diagnostics
5151
import qualified Ide.Plugin.Cabal.FieldSuggest as FieldSuggest
5252
import qualified Ide.Plugin.Cabal.LicenseSuggest as LicenseSuggest
5353
import Ide.Plugin.Cabal.Orphans ()
5454
import Ide.Plugin.Cabal.Outline
5555
import qualified Ide.Plugin.Cabal.Parse as Parse
5656
import Ide.Plugin.Error
57-
import Data.HashMap.Strict (HashMap)
58-
import qualified Data.HashMap.Strict as HashMap
59-
import qualified Data.List.NonEmpty as NE
60-
import qualified Data.Maybe as Maybe
61-
import qualified Data.Text as T
62-
import qualified Data.Text.Encoding as Encoding
63-
import Data.Typeable
64-
import Development.IDE as D
65-
import Development.IDE.Core.Shake (restartShakeSession)
66-
import qualified Development.IDE.Core.Shake as Shake
67-
import Development.IDE.Graph (Key, alwaysRerun)
68-
import qualified Development.IDE.Plugin.Completions.Logic as Ghcide
69-
import Development.IDE.Types.Shake (toKey)
70-
import qualified Distribution.Fields as Syntax
71-
import qualified Distribution.Parsec.Position as Syntax
72-
import GHC.Generics
73-
import qualified Ide.Plugin.Cabal.Completion.Completer.Types as CompleterTypes
74-
import qualified Ide.Plugin.Cabal.Completion.Completions as Completions
75-
import Ide.Plugin.Cabal.Completion.Types (ParseCabalCommonSections (ParseCabalCommonSections),
76-
ParseCabalFields (..),
77-
ParseCabalFile (..))
78-
import qualified Ide.Plugin.Cabal.Completion.Types as Types
79-
import Ide.Plugin.Cabal.Definition (gotoDefinition)
80-
import qualified Ide.Plugin.Cabal.Diagnostics as Diagnostics
81-
import qualified Ide.Plugin.Cabal.FieldSuggest as FieldSuggest
82-
import qualified Ide.Plugin.Cabal.LicenseSuggest as LicenseSuggest
83-
import Ide.Plugin.Cabal.Orphans ()
84-
import Ide.Plugin.Cabal.Outline
85-
import qualified Ide.Plugin.Cabal.Parse as Parse
8657
import Ide.Types
8758
import qualified Language.LSP.Protocol.Lens as JL
8859
import qualified Language.LSP.Protocol.Message as LSP
@@ -91,8 +62,8 @@ import qualified Language.LSP.VFS as VFS
9162
import Text.Regex.TDFA
9263

9364

94-
import qualified Data.Text ()
95-
import qualified Ide.Plugin.Cabal.CabalAdd as CabalAdd
65+
import qualified Data.Text ()
66+
import qualified Ide.Plugin.Cabal.CabalAdd as CabalAdd
9667

9768
data Log
9869
= LogModificationTime NormalizedFilePath FileVersion
@@ -344,34 +315,6 @@ fieldSuggestCodeAction recorder ide _ (CodeActionParams _ _ (TextDocumentIdentif
344315
let completionTexts = fmap (^. JL.label) completions
345316
pure $ FieldSuggest.fieldErrorAction uri fieldName completionTexts _range
346317

347-
-- | CodeActions for going to definitions.
348-
--
349-
-- Provides a CodeAction for going to a definition when clicking on an identifier.
350-
-- The definition is found by traversing the sections and comparing their name to
351-
-- the clicked identifier.
352-
--
353-
-- TODO: Support more definitions than sections.
354-
gotoDefinition :: PluginMethodHandler IdeState LSP.Method_TextDocumentDefinition
355-
gotoDefinition ideState _ msgParam = do
356-
nfp <- getNormalizedFilePathE uri
357-
cabalFields <- runActionE "cabal-plugin.commonSections" ideState $ useE ParseCabalFields nfp
358-
case CabalFields.findTextWord cursor cabalFields of
359-
Nothing ->
360-
pure $ InR $ InR Null
361-
Just cursorText -> do
362-
commonSections <- runActionE "cabal-plugin.commonSections" ideState $ useE ParseCabalCommonSections nfp
363-
case find (isSectionArgName cursorText) commonSections of
364-
Nothing ->
365-
pure $ InR $ InR Null
366-
Just commonSection -> do
367-
pure $ InL $ Definition $ InL $ Location uri $ CabalFields.getFieldLSPRange commonSection
368-
where
369-
cursor = Types.lspPositionToCabalPosition (msgParam ^. JL.position)
370-
uri = msgParam ^. JL.textDocument . JL.uri
371-
isSectionArgName name (Syntax.Section _ sectionArgName _) = name == CabalFields.onelineSectionArgs sectionArgName
372-
isSectionArgName _ _ = False
373-
374-
375318
cabalAddCodeAction :: PluginMethodHandler IdeState 'LSP.Method_TextDocumentCodeAction
376319
cabalAddCodeAction state plId (CodeActionParams _ _ (TextDocumentIdentifier uri) _ CodeActionContext{_diagnostics=diags}) = do
377320
maxCompls <- fmap maxCompletions . liftIO $ runAction "cabal.cabal-add" state getClientConfigAction

plugins/hls-cabal-plugin/test/Main.hs

Lines changed: 0 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -232,59 +232,6 @@ codeActionTests = testGroup "Code Actions"
232232
guard (_title == "Replace with " <> license)
233233
pure action
234234

235-
-- ----------------------------------------------------------------------------
236-
-- Goto Definition Tests
237-
-- ----------------------------------------------------------------------------
238-
239-
gotoDefinitionTests :: TestTree
240-
gotoDefinitionTests = testGroup "Goto Definition"
241-
[ positiveTest "middle of identifier" (mkP 27 16) (mkR 6 0 7 22)
242-
, positiveTest "left of identifier" (mkP 30 12) (mkR 10 0 17 40)
243-
, positiveTest "right of identifier" (mkP 33 22) (mkR 20 0 23 34)
244-
, positiveTest "left of '-' in identifier" (mkP 36 20) (mkR 6 0 7 22)
245-
, positiveTest "right of '-' in identifier" (mkP 39 19) (mkR 10 0 17 40)
246-
, positiveTest "identifier in identifier list" (mkP 42 16) (mkR 20 0 23 34)
247-
, positiveTest "left of ',' right of identifier" (mkP 45 33) (mkR 10 0 17 40)
248-
, positiveTest "right of ',' left of identifier" (mkP 48 34) (mkR 6 0 7 22)
249-
250-
, negativeTest "right of ',' left of space" (mkP 51 23)
251-
, negativeTest "right of ':' left of space" (mkP 54 11)
252-
, negativeTest "not a definition" (mkP 57 8)
253-
, negativeTest "empty space" (mkP 59 7)
254-
]
255-
where
256-
mkP :: UInt -> UInt -> Position
257-
mkP x1 y1 = Position x1 y1
258-
259-
mkR :: UInt -> UInt -> UInt -> UInt -> Range
260-
mkR x1 y1 x2 y2 = Range (mkP x1 y1) (mkP x2 y2)
261-
262-
getDefinition :: Show b => (Definition |? b) -> Range
263-
getDefinition (InL (Definition (InL loc))) = loc^.L.range
264-
getDefinition unk = error $ "Unexpected pattern '" ++ show unk ++ "' , expected '(InL (Definition (InL loc))'"
265-
266-
-- A positive test checks if the provided range is equal
267-
-- to the expected range from the definition in the test file.
268-
-- The test emulates a goto-definition request of an actual definition.
269-
positiveTest :: TestName -> Position -> Range -> TestTree
270-
positiveTest testName cursorPos expectedRange =
271-
runCabalTestCaseSession testName "goto-definition" $ do
272-
doc <- openDoc "simple-with-common.cabal" "cabal"
273-
definitions <- getDefinitions doc cursorPos
274-
let locationRange = getDefinition definitions
275-
liftIO $ locationRange @?= expectedRange
276-
277-
-- A negative test checks if the request failed and
278-
-- the provided result is empty, i.e. `InR $ InR Null`.
279-
-- The test emulates a goto-definition request of anything but an
280-
-- actual definition.
281-
negativeTest :: TestName -> Position -> TestTree
282-
negativeTest testName cursorPos =
283-
runCabalTestCaseSession testName "goto-definition" $ do
284-
doc <- openDoc "simple-with-common.cabal" "cabal"
285-
empty <- getDefinitions doc cursorPos
286-
liftIO $ empty @?= (InR $ InR LSP.Null)
287-
288235
-- ----------------------------------------------------------------------------
289236
-- Hover Tests
290237
-- ----------------------------------------------------------------------------

0 commit comments

Comments
 (0)