[kate] [Bug 486372] Incorrect syntax highlighting of PHP strings that contain an opening bracket

2024-04-30 Thread Stéphane Aulery
https://bugs.kde.org/show_bug.cgi?id=486372

--- Comment #2 from Stéphane Aulery  ---
Checked with Kate 24.07.70 on Windows 11

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

[kate] [Bug 486372] Incorrect syntax highlighting of PHP strings that contain an opening bracket

2024-04-30 Thread Stéphane Aulery
https://bugs.kde.org/show_bug.cgi?id=486372

Stéphane Aulery  changed:

   What|Removed |Added

 CC||saul...@legtux.org

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

[kate] [Bug 486372] Incorrect syntax highlighting of PHP strings that contain an opening bracket

2024-04-30 Thread Stéphane Aulery
https://bugs.kde.org/show_bug.cgi?id=486372

--- Comment #1 from Stéphane Aulery  ---
Created attachment 169054
  --> https://bugs.kde.org/attachment.cgi?id=169054=edit
Code reproducing the error

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

[kate] [Bug 486372] New: Incorrect syntax highlighting of PHP strings that contain an opening bracket

2024-04-30 Thread Stéphane Aulery
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=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.