Commit d813fe75 authored by Pierre Smeyers's avatar Pierre Smeyers
Browse files

fix: get file position for feature variables

parent 8c0d7169
Loading
Loading
Loading
Loading
+11 −5
Original line number Diff line number Diff line
@@ -45,12 +45,12 @@ class FilePos:
    def from_match(cls, file: Path | str, text: str, match: re.Match | None):
        return (
            cls(
                file,
                text.count("\n", 0, match.start()) + 1,
                match.start() - max(0, text.rfind("\n", 0, match.start())),
                file=file,
                line=text.count("\n", 0, match.start()) + 1,
                col=match.start() - max(0, text.rfind("\n", 0, match.start())),
            )
            if match
            else FilePos(file)
            else FilePos(file=file)
        )


@@ -412,6 +412,7 @@ class Issue(BaseJson):
    def fingerprint(self):
        digest = hashlib.md5()
        digest.update(self.check_name.encode("utf-8"))
        if self.position:
            digest.update(self.position.norm_file.encode("utf-8"))
        digest.update(self.hash_ctx.encode("utf-8"))
        return digest.hexdigest()
@@ -1084,6 +1085,11 @@ def _check_tpl(
                del inputs[input_name]
        for var in feat.get("variables", []):
            tbc_var = TbcVar.fromdict(var)
            tbc_var.pos = FilePos.find(
                kicker_path,
                kicker_content,
                f'"name": *"{tbc_var.name}"',
            )
            yield from _check_var(
                tbc_var,
                var_prefix,