https://bugs.kde.org/show_bug.cgi?id=486372

            Bug ID: 486372
           Summary: Incorrect syntax highlighting of PHP strings that
                    contain an opening bracket
    Classification: Applications
           Product: kate
           Version: unspecified
          Platform: Other
                OS: Microsoft Windows
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: application
          Assignee: kwrite-bugs-n...@kde.org
          Reporter: saul...@legtux.org
  Target Milestone: ---

Created attachment 169053
  --> https://bugs.kde.org/attachment.cgi?id=169053&action=edit
The error in pictures

The code snippet below illustrates the problem. Any occurrence of \{ inside a
string causes a false coloring in the block between curly brackets following
it.

   /**
     * Create a preg pattern for checking presence of a WIKINDX_NO_SORT value
at the beginning of a string.
     *
     * If empty($noSortArray), then we use WIKINDX_NO_SORT (and assume that
WIKINDX_NO_SORT has been checked for content).
     * Otherwise, $noSortArray is from admin::configure::updateNoSort()
     *
     * @param array $noSortArray Default is []
     *
     * @return string
     */
    function noSortPattern(
        array $noSortArray = [],
    ): string
    {
        if (empty($noSortArray)) {
                $noSortArray = \UTF8\mb_explode(',', WIKINDX_NO_SORT);
        }
                foreach ($noSortArray as $patt) {
                        $patt = preg_quote($patt, '@');
                        $pattern[] = "^($patt)\\s";
                        $pattern[] = "^(\{$patt)\\s";
                        $pattern[] = "^(<.*>)($patt)\\s(.*)(<.*>)";
                        $pattern[] = "^(<.*>)(\{$patt)\\s?(.*)(<.*>)";
                        $pattern[] = "^(<.*>)($patt)(.*)(<.*>)\\s";
                        $pattern[] = "^(<.*>)(\{$patt)(.*)(<.*>)\\s";
                }

                return '@' . implode('|', $pattern) . '@Usiu';
        }
    /**
     * Write a hashed version of a user password in users table
     *
     * Implementation history: see \UTILS\verifyUserPassword()
     *
     * @param SQL $db An SQL object
     * @param string $usersId A user Id
     * @param string $usersPassword A clear password to encrypt/hash
     */
    function writeUserPassword(
        \SQL $db,
        int $usersId,
        string $usersPassword,
    ): void
    {
        $hash = \password_hash($usersPassword, PASSWORD_DEFAULT);
        $updateArray["usersPassword"] = $hash;

        $usertable = "users";
        // TODO(LkpPo): remove this conditon when the upgrade code of step 57
(6.4.7) is retired.
        if (!$db->tableExists($usertable))
        {
            $usertable = "wkx_users";
        }

        $db->formatConditions(["usersId" => $usersId]);
        $db->update($usertable, $updateArray);
    }


STEPS TO REPRODUCE
1. 
2. 
3. 

OBSERVED RESULT


EXPECTED RESULT


SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 
KDE Frameworks Version: 
Qt Version: 

ADDITIONAL INFORMATION

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to