summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--lib/Properties.hs17
1 files changed, 10 insertions, 7 deletions
diff --git a/lib/Properties.hs b/lib/Properties.hs
index 1c81f87..62cb4f7 100644
--- a/lib/Properties.hs
+++ b/lib/Properties.hs
@@ -228,9 +228,12 @@ checkLayer = do
checkObjectProperty :: Object -> Property -> LintWriter Layer
checkObjectProperty obj p@(Property name _) = case name of
"url" -> do
- unwrapURI (Proxy @"website") p
+ unwrapURI' (Proxy @"website") p
(dependsOn . Link)
(const $ forbid "using \"url\" to open local html files is disallowed.")
+
+ -- | TODO: The uri should be rewritten if the unwrapURI' did add the wrapper
+
unless (objectType obj == "website")
$ complain "\"url\" can only be set for objects of type \"website\""
"allowApi" -> forbidProperty name
@@ -257,7 +260,7 @@ checkObjectProperty obj p@(Property name _) = case name of
"door" -> do
isBool p
unless (objectType obj == "variable") $
- complain "Door variables must be of type \"variable\""
+ complain "the \"door\" property should only be set on objects of type \"variable\""
when (null (objectName obj) || objectName obj == Just mempty) $
complain "Door variables objects must have a name given"
@@ -276,7 +279,7 @@ checkObjectProperty obj p@(Property name _) = case name of
"openSound" -> do
isString p
- unwrapURI (Proxy @"audio") p
+ unwrapURI' (Proxy @"audio") p
(dependsOn . Link)
(dependsOn . Local)
@@ -287,7 +290,7 @@ checkObjectProperty obj p@(Property name _) = case name of
"closeSound" -> do
isString p
- unwrapURI (Proxy @"audio") p
+ unwrapURI' (Proxy @"audio") p
(dependsOn . Link)
(dependsOn . Local)
@@ -302,13 +305,13 @@ checkObjectProperty obj p@(Property name _) = case name of
"bell" -> do
isBool p
unless (objectType obj == "variable") $
- complain "Bell variables must be of type \"variable\""
+ complain "the \"bell\" property should only be set on objects of type \"variable\""
when (null (objectName obj) || objectName obj == Just mempty) $
complain "Bell variables objects must have a name given"
"bellSound" -> do
isString p
- unwrapURI (Proxy @"audio") p
+ unwrapURI' (Proxy @"audio") p
(dependsOn . Link)
(dependsOn . Local)
@@ -317,7 +320,7 @@ checkObjectProperty obj p@(Property name _) = case name of
-- | Applies to doors and bells as well
"soundRadius" -> do
isInt p
- -- requireAnyProperty "door" "bell"
+ -- | maybe we should lint that this property is only used on door and bell variables
_ -> warn $ "unknown object property " <> prettyprint name <> "."