mirror of
https://github.com/swarm-game/swarm.git
synced 2024-10-26 17:38:34 +03:00
parent
03509d7ae8
commit
58ff215480
27
.github/workflows/haskell-ci.yml
vendored
27
.github/workflows/haskell-ci.yml
vendored
@ -9,7 +9,7 @@
|
|||||||
#
|
#
|
||||||
# This GitHub workflow config has been generated by a script via
|
# This GitHub workflow config has been generated by a script via
|
||||||
#
|
#
|
||||||
# haskell-ci 'github' '--config=cabal.haskell-ci' 'cabal.project' '--copy-fields=all'
|
# haskell-ci 'github' '--config=cabal.haskell-ci' '--copy-fields=all' 'swarm.cabal'
|
||||||
#
|
#
|
||||||
# To regenerate the script (for example after adjusting tested-with) run
|
# To regenerate the script (for example after adjusting tested-with) run
|
||||||
#
|
#
|
||||||
@ -17,9 +17,9 @@
|
|||||||
#
|
#
|
||||||
# For more information, see https://github.com/haskell-CI/haskell-ci
|
# For more information, see https://github.com/haskell-CI/haskell-ci
|
||||||
#
|
#
|
||||||
# version: 0.15.20220808
|
# version: 0.15.20221009
|
||||||
#
|
#
|
||||||
# REGENDATA ("0.15.20220808",["github","--config=cabal.haskell-ci","cabal.project","--copy-fields=all"])
|
# REGENDATA ("0.15.20221009",["github","--config=cabal.haskell-ci","--copy-fields=all","swarm.cabal"])
|
||||||
#
|
#
|
||||||
name: Haskell-CI
|
name: Haskell-CI
|
||||||
on:
|
on:
|
||||||
@ -30,7 +30,6 @@ on:
|
|||||||
- '**.cabal'
|
- '**.cabal'
|
||||||
- '*.yaml'
|
- '*.yaml'
|
||||||
- 'data/**.yaml'
|
- 'data/**.yaml'
|
||||||
- 'cabal.project*'
|
|
||||||
- '.github/workflows/haskell-ci.yml'
|
- '.github/workflows/haskell-ci.yml'
|
||||||
branches:
|
branches:
|
||||||
- "main"
|
- "main"
|
||||||
@ -43,7 +42,6 @@ on:
|
|||||||
- 'stack.yaml'
|
- 'stack.yaml'
|
||||||
- '*.yaml'
|
- '*.yaml'
|
||||||
- 'data/**.yaml'
|
- 'data/**.yaml'
|
||||||
- 'cabal.project*'
|
|
||||||
- '.github/workflows/haskell-ci.yml'
|
- '.github/workflows/haskell-ci.yml'
|
||||||
branches:
|
branches:
|
||||||
- "main"
|
- "main"
|
||||||
@ -150,7 +148,7 @@ jobs:
|
|||||||
- name: cache (tools)
|
- name: cache (tools)
|
||||||
uses: actions/cache@v2
|
uses: actions/cache@v2
|
||||||
with:
|
with:
|
||||||
key: ${{ runner.os }}-${{ matrix.compiler }}-tools-436fbe9d
|
key: ${{ runner.os }}-${{ matrix.compiler }}-tools-0ac7885f
|
||||||
path: ~/.haskell-ci-tools
|
path: ~/.haskell-ci-tools
|
||||||
- name: install cabal-plan
|
- name: install cabal-plan
|
||||||
run: |
|
run: |
|
||||||
@ -172,10 +170,10 @@ jobs:
|
|||||||
cabal-docspec --version
|
cabal-docspec --version
|
||||||
- name: install hlint
|
- name: install hlint
|
||||||
run: |
|
run: |
|
||||||
if [ $((HCNUMVER < 90000)) -ne 0 ] ; then HLINTVER=$(cd /tmp && (${CABAL} v2-install -v $ARG_COMPILER --dry-run hlint --constraint='hlint >=3.3 && <3.4' | perl -ne 'if (/\bhlint-(\d+(\.\d+)*)\b/) { print "$1"; last; }')); echo "HLint version $HLINTVER" ; fi
|
if [ $((HCNUMVER >= 90200)) -ne 0 ] ; then HLINTVER=$(cd /tmp && (${CABAL} v2-install -v $ARG_COMPILER --dry-run hlint --constraint='hlint >=3.5 && <3.6' | perl -ne 'if (/\bhlint-(\d+(\.\d+)*)\b/) { print "$1"; last; }')); echo "HLint version $HLINTVER" ; fi
|
||||||
if [ $((HCNUMVER < 90000)) -ne 0 ] ; then if [ ! -e $HOME/.haskell-ci-tools/hlint-$HLINTVER/hlint ]; then echo "Downloading HLint version $HLINTVER"; mkdir -p $HOME/.haskell-ci-tools; curl --write-out 'Status Code: %{http_code} Redirects: %{num_redirects} Total time: %{time_total} Total Dsize: %{size_download}\n' --silent --location --output $HOME/.haskell-ci-tools/hlint-$HLINTVER.tar.gz "https://github.com/ndmitchell/hlint/releases/download/v$HLINTVER/hlint-$HLINTVER-x86_64-linux.tar.gz"; tar -xzv -f $HOME/.haskell-ci-tools/hlint-$HLINTVER.tar.gz -C $HOME/.haskell-ci-tools; fi ; fi
|
if [ $((HCNUMVER >= 90200)) -ne 0 ] ; then if [ ! -e $HOME/.haskell-ci-tools/hlint-$HLINTVER/hlint ]; then echo "Downloading HLint version $HLINTVER"; mkdir -p $HOME/.haskell-ci-tools; curl --write-out 'Status Code: %{http_code} Redirects: %{num_redirects} Total time: %{time_total} Total Dsize: %{size_download}\n' --silent --location --output $HOME/.haskell-ci-tools/hlint-$HLINTVER.tar.gz "https://github.com/ndmitchell/hlint/releases/download/v$HLINTVER/hlint-$HLINTVER-x86_64-linux.tar.gz"; tar -xzv -f $HOME/.haskell-ci-tools/hlint-$HLINTVER.tar.gz -C $HOME/.haskell-ci-tools; fi ; fi
|
||||||
if [ $((HCNUMVER < 90000)) -ne 0 ] ; then mkdir -p $CABAL_DIR/bin && ln -sf "$HOME/.haskell-ci-tools/hlint-$HLINTVER/hlint" $CABAL_DIR/bin/hlint ; fi
|
if [ $((HCNUMVER >= 90200)) -ne 0 ] ; then mkdir -p $CABAL_DIR/bin && ln -sf "$HOME/.haskell-ci-tools/hlint-$HLINTVER/hlint" $CABAL_DIR/bin/hlint ; fi
|
||||||
if [ $((HCNUMVER < 90000)) -ne 0 ] ; then hlint --version ; fi
|
if [ $((HCNUMVER >= 90200)) -ne 0 ] ; then hlint --version ; fi
|
||||||
- name: checkout
|
- name: checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
with:
|
with:
|
||||||
@ -204,11 +202,6 @@ jobs:
|
|||||||
echo "package swarm" >> cabal.project
|
echo "package swarm" >> cabal.project
|
||||||
echo " ghc-options: -Werror=missing-methods" >> cabal.project
|
echo " ghc-options: -Werror=missing-methods" >> cabal.project
|
||||||
cat >> cabal.project <<EOF
|
cat >> cabal.project <<EOF
|
||||||
source-repository-package
|
|
||||||
type: git
|
|
||||||
location: https://github.com/colinhect/hsnoise
|
|
||||||
tag: 4ccff11dea7e8d94e6a5fcaf8f43857bd65bd72d
|
|
||||||
|
|
||||||
flags: +ci
|
flags: +ci
|
||||||
EOF
|
EOF
|
||||||
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(swarm)$/; }' >> cabal.project.local
|
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(swarm)$/; }' >> cabal.project.local
|
||||||
@ -240,8 +233,8 @@ jobs:
|
|||||||
cabal-docspec $ARG_COMPILER
|
cabal-docspec $ARG_COMPILER
|
||||||
- name: hlint
|
- name: hlint
|
||||||
run: |
|
run: |
|
||||||
if [ $((HCNUMVER < 90000)) -ne 0 ] ; then (cd ${PKGDIR_swarm} && hlint -h ${GITHUB_WORKSPACE}/source/.hlint.yaml -XHaskell2010 -XBangPatterns -XDeriveAnyClass -XDeriveDataTypeable -XDeriveFunctor -XDeriveGeneric -XDeriveTraversable -XExplicitForAll -XFlexibleContexts -XFlexibleInstances -XGADTSyntax -XMultiParamTypeClasses -XNumericUnderscores -XRankNTypes -XScopedTypeVariables -XStandaloneDeriving -XTupleSections -XTypeApplications -XTypeOperators -XImportQualifiedPost -XLambdaCase -XStrictData src) ; fi
|
if [ $((HCNUMVER >= 90200)) -ne 0 ] ; then (cd ${PKGDIR_swarm} && hlint -h ${GITHUB_WORKSPACE}/source/.hlint.yaml -XHaskell2010 -XBangPatterns -XDeriveAnyClass -XDeriveDataTypeable -XDeriveFunctor -XDeriveGeneric -XDeriveTraversable -XExplicitForAll -XFlexibleContexts -XFlexibleInstances -XGADTSyntax -XMultiParamTypeClasses -XNumericUnderscores -XRankNTypes -XScopedTypeVariables -XStandaloneDeriving -XTupleSections -XTypeApplications -XTypeOperators -XImportQualifiedPost -XLambdaCase -XStrictData src) ; fi
|
||||||
if [ $((HCNUMVER < 90000)) -ne 0 ] ; then (cd ${PKGDIR_swarm} && hlint -h ${GITHUB_WORKSPACE}/source/.hlint.yaml -XHaskell2010 -XImportQualifiedPost app) ; fi
|
if [ $((HCNUMVER >= 90200)) -ne 0 ] ; then (cd ${PKGDIR_swarm} && hlint -h ${GITHUB_WORKSPACE}/source/.hlint.yaml -XHaskell2010 -XImportQualifiedPost app) ; fi
|
||||||
- name: cabal check
|
- name: cabal check
|
||||||
run: |
|
run: |
|
||||||
cd ${PKGDIR_swarm} || false
|
cd ${PKGDIR_swarm} || false
|
||||||
|
@ -19,7 +19,7 @@ benchmarks: True
|
|||||||
|
|
||||||
-- Run HLint
|
-- Run HLint
|
||||||
hlint: True
|
hlint: True
|
||||||
hlint-job: 8.10.7
|
hlint-job: 9.2.4
|
||||||
hlint-yaml: .hlint.yaml
|
hlint-yaml: .hlint.yaml
|
||||||
hlint-download-binary: True
|
hlint-download-binary: True
|
||||||
|
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
-- If you edit this file, be sure to regenerate the CI configuration
|
|
||||||
-- by running 'haskell-ci regenerate'.
|
|
||||||
|
|
||||||
source-repository-package
|
|
||||||
type: git
|
|
||||||
location: https://github.com/colinhect/hsnoise
|
|
||||||
tag: 4ccff11dea7e8d94e6a5fcaf8f43857bd65bd72d
|
|
||||||
|
|
||||||
packages: .
|
|
@ -14,6 +14,7 @@ module Swarm.Language.LSP where
|
|||||||
import Control.Lens (to, (^.))
|
import Control.Lens (to, (^.))
|
||||||
import Control.Monad (void)
|
import Control.Monad (void)
|
||||||
import Control.Monad.IO.Class
|
import Control.Monad.IO.Class
|
||||||
|
import Data.Foldable (forM_)
|
||||||
import Data.Maybe (fromMaybe)
|
import Data.Maybe (fromMaybe)
|
||||||
import Data.Text (Text)
|
import Data.Text (Text)
|
||||||
import Data.Text.IO qualified as Text
|
import Data.Text.IO qualified as Text
|
||||||
@ -71,9 +72,7 @@ validateSwarmCode doc version content = do
|
|||||||
Left e -> Just $ showTypeErrorPos content e
|
Left e -> Just $ showTypeErrorPos content e
|
||||||
Left e -> Just $ showErrorPos e
|
Left e -> Just $ showErrorPos e
|
||||||
-- debug $ "-> " <> from (show err)
|
-- debug $ "-> " <> from (show err)
|
||||||
case err of
|
forM_ err sendDiagnostic
|
||||||
Nothing -> pure ()
|
|
||||||
Just e -> sendDiagnostic e
|
|
||||||
where
|
where
|
||||||
sendDiagnostic :: ((Int, Int), (Int, Int), Text) -> LspM () ()
|
sendDiagnostic :: ((Int, Int), (Int, Int), Text) -> LspM () ()
|
||||||
sendDiagnostic ((startLine, startCol), (endLine, endCol), msg) = do
|
sendDiagnostic ((startLine, startCol), (endLine, endCol), msg) = do
|
||||||
|
@ -2,8 +2,7 @@ extra-deps:
|
|||||||
- word-wrap-0.5
|
- word-wrap-0.5
|
||||||
- hashable-1.3.5.0
|
- hashable-1.3.5.0
|
||||||
- base-orphans-0.8.6
|
- base-orphans-0.8.6
|
||||||
- git: https://github.com/colinhect/hsnoise
|
- hsnoise-0.0.3@sha256:260b39175b8a3e3b1719ad3987b7d72a3fd7a0fa99be8639b91cf4dc3f1c8796,1476
|
||||||
commit: 4ccff11dea7e8d94e6a5fcaf8f43857bd65bd72d
|
|
||||||
- brick-1.0@sha256:99242c47aa2fd08424445de9c4437405098dcda5ae74d558648eadd6b069062c,17793
|
- brick-1.0@sha256:99242c47aa2fd08424445de9c4437405098dcda5ae74d558648eadd6b069062c,17793
|
||||||
- bimap-0.5.0@sha256:aba506d02a1c93fc2b50dcbe728d2a4d07cca89b7033945418061a0b08576ebd,1889
|
- bimap-0.5.0@sha256:aba506d02a1c93fc2b50dcbe728d2a4d07cca89b7033945418061a0b08576ebd,1889
|
||||||
- simple-enumeration-0.2.1@sha256:8625b269c1650d3dd0e3887351c153049f4369853e0d525219e07480ea004b9f,1178
|
- simple-enumeration-0.2.1@sha256:8625b269c1650d3dd0e3887351c153049f4369853e0d525219e07480ea004b9f,1178
|
||||||
|
@ -140,7 +140,7 @@ library
|
|||||||
fused-effects-lens >= 1.2.0.1 && < 1.3,
|
fused-effects-lens >= 1.2.0.1 && < 1.3,
|
||||||
githash >= 0.1.6 && < 0.2,
|
githash >= 0.1.6 && < 0.2,
|
||||||
hashable >= 1.3.4 && < 1.5,
|
hashable >= 1.3.4 && < 1.5,
|
||||||
hsnoise >= 0.0.2 && < 0.1,
|
hsnoise >= 0.0.3 && < 0.1,
|
||||||
http-client >= 0.7 && < 0.8,
|
http-client >= 0.7 && < 0.8,
|
||||||
http-client-tls >= 0.3 && < 0.4,
|
http-client-tls >= 0.3 && < 0.4,
|
||||||
http-types >= 0.12 && < 0.13,
|
http-types >= 0.12 && < 0.13,
|
||||||
|
Loading…
Reference in New Issue
Block a user