From f69a697b86fd22e982591a5492777be631502cf3 Mon Sep 17 00:00:00 2001 From: Pluto Date: Thu, 23 Oct 2025 00:42:37 +0530 Subject: [PATCH 1/4] fix: emmet text overlapping emmet hint --- src/extensions/default/CSSCodeHints/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/extensions/default/CSSCodeHints/main.js b/src/extensions/default/CSSCodeHints/main.js index 3ab75fe97..49d62cf0c 100644 --- a/src/extensions/default/CSSCodeHints/main.js +++ b/src/extensions/default/CSSCodeHints/main.js @@ -522,7 +522,7 @@ define(function (require, exports, module) { } const $emmetHintObj = $("") - .addClass("brackets-css-hints brackets-hints") + .addClass("brackets-css-hints brackets-hints emmet-hint") .attr("data-val", expandedAbbr) .attr("data-isEmmet", true); From b55c02446ea59abaa9b537ac8c0c3532556bc7eb Mon Sep 17 00:00:00 2001 From: Pluto Date: Fri, 24 Oct 2025 13:06:52 +0530 Subject: [PATCH 2/4] refactor: improve emmet code readability --- src/extensions/default/CSSCodeHints/main.js | 5 +++-- src/extensions/default/HTMLCodeHints/main.js | 4 ++-- src/styles/brackets_patterns_override.less | 8 ++------ 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/extensions/default/CSSCodeHints/main.js b/src/extensions/default/CSSCodeHints/main.js index 49d62cf0c..8f8aba6e0 100644 --- a/src/extensions/default/CSSCodeHints/main.js +++ b/src/extensions/default/CSSCodeHints/main.js @@ -522,9 +522,10 @@ define(function (require, exports, module) { } const $emmetHintObj = $("") - .addClass("brackets-css-hints brackets-hints emmet-hint") + .addClass("brackets-css-hints brackets-hints") .attr("data-val", expandedAbbr) - .attr("data-isEmmet", true); + .attr("data-isEmmet", true) + .css("margin-right", "48px"); // for highlighting the already-typed characters if (token.stringRanges) { diff --git a/src/extensions/default/HTMLCodeHints/main.js b/src/extensions/default/HTMLCodeHints/main.js index 6aa213b8d..f22b923ff 100644 --- a/src/extensions/default/HTMLCodeHints/main.js +++ b/src/extensions/default/HTMLCodeHints/main.js @@ -145,7 +145,7 @@ define(function (require, exports, module) { function formatEmmetHint(abbr) { // Create the main container for the hint var $hint = $("") - .addClass("emmet-hint"); + .css("margin-right", "48px"); // Create a wrapper for the text content var $textContent = $("") @@ -153,7 +153,7 @@ define(function (require, exports, module) { .text(abbr); // style in brackets_patterns_override.less file - let $icon = $(`Emmet`); + let $icon = $(`Emmet`); // Append both text content and icon to the main container $hint.append($textContent); diff --git a/src/styles/brackets_patterns_override.less b/src/styles/brackets_patterns_override.less index 8ea94df2d..a458dcb80 100644 --- a/src/styles/brackets_patterns_override.less +++ b/src/styles/brackets_patterns_override.less @@ -727,11 +727,11 @@ a:focus { } } -.emmet-code-hint { +.emmet-html-code-hint { visibility: hidden; } -.codehint-menu .dropdown-menu li a.highlight .emmet-code-hint { +.codehint-menu .dropdown-menu li a.highlight .emmet-html-code-hint { visibility: visible; position: absolute; right: 1rem; @@ -744,10 +744,6 @@ a:focus { } } -.emmet-hint { - margin-right: 48px !important; -} - .emmet-text-content { display: inline-block; max-width: 320px; From 68b49483aa40063fd2feeb165efcfd1127a3ec6e Mon Sep 17 00:00:00 2001 From: Pluto Date: Fri, 24 Oct 2025 14:49:55 +0530 Subject: [PATCH 3/4] fix: add max limit for emmet expandable text to prevent app crash --- src/extensions/default/CSSCodeHints/main.js | 2 +- src/extensions/default/HTMLCodeHints/main.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/extensions/default/CSSCodeHints/main.js b/src/extensions/default/CSSCodeHints/main.js index 8f8aba6e0..c4070028b 100644 --- a/src/extensions/default/CSSCodeHints/main.js +++ b/src/extensions/default/CSSCodeHints/main.js @@ -495,7 +495,7 @@ define(function (require, exports, module) { // wrapped in try catch block because EXPAND_ABBR might throw error when it gets unexpected // characters such as `, =, etc try { - let expandedAbbr = expandAbbr(needle, { syntax: "css", type: "stylesheet" }); + let expandedAbbr = expandAbbr(needle, { syntax: "css", type: "stylesheet", maxRepeat: 1000 }); if (expandedAbbr && _isEmmetExpandable(needle, expandedAbbr)) { // if the expandedAbbr doesn't have any numbers, we should split the expandedAbbr to, diff --git a/src/extensions/default/HTMLCodeHints/main.js b/src/extensions/default/HTMLCodeHints/main.js index f22b923ff..0f867ce42 100644 --- a/src/extensions/default/HTMLCodeHints/main.js +++ b/src/extensions/default/HTMLCodeHints/main.js @@ -498,7 +498,7 @@ define(function (require, exports, module) { ) { try { - return expandAbbr(word, { syntax: "html", type: "markup" }); // expanded + return expandAbbr(word, { syntax: "html", type: "markup", maxRepeat: 1000 }); // expanded } catch (error) { // emmet api throws an error when abbr contains unclosed quotes, handling that case @@ -510,7 +510,7 @@ define(function (require, exports, module) { const modifiedWord = word + nextChar; try { - return expandAbbr(modifiedWord, { syntax: "html", type: "markup" }); //expandedModified + return expandAbbr(modifiedWord, { syntax: "html", type: "markup", maxRepeat: 1000 }); } catch (innerError) { // If it still fails, return false return null; From b1983460a57ef2e20f882f54a5008e139e7486a3 Mon Sep 17 00:00:00 2001 From: Pluto Date: Fri, 24 Oct 2025 18:22:25 +0530 Subject: [PATCH 4/4] fix: use 400 instead of 1000 for max repeat to prevent app freeze --- src/extensions/default/CSSCodeHints/main.js | 2 +- src/extensions/default/HTMLCodeHints/main.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/extensions/default/CSSCodeHints/main.js b/src/extensions/default/CSSCodeHints/main.js index c4070028b..2ffd9725b 100644 --- a/src/extensions/default/CSSCodeHints/main.js +++ b/src/extensions/default/CSSCodeHints/main.js @@ -495,7 +495,7 @@ define(function (require, exports, module) { // wrapped in try catch block because EXPAND_ABBR might throw error when it gets unexpected // characters such as `, =, etc try { - let expandedAbbr = expandAbbr(needle, { syntax: "css", type: "stylesheet", maxRepeat: 1000 }); + let expandedAbbr = expandAbbr(needle, { syntax: "css", type: "stylesheet", maxRepeat: 400 }); if (expandedAbbr && _isEmmetExpandable(needle, expandedAbbr)) { // if the expandedAbbr doesn't have any numbers, we should split the expandedAbbr to, diff --git a/src/extensions/default/HTMLCodeHints/main.js b/src/extensions/default/HTMLCodeHints/main.js index 0f867ce42..eef4fc4ed 100644 --- a/src/extensions/default/HTMLCodeHints/main.js +++ b/src/extensions/default/HTMLCodeHints/main.js @@ -498,7 +498,7 @@ define(function (require, exports, module) { ) { try { - return expandAbbr(word, { syntax: "html", type: "markup", maxRepeat: 1000 }); // expanded + return expandAbbr(word, { syntax: "html", type: "markup", maxRepeat: 400 }); // expanded } catch (error) { // emmet api throws an error when abbr contains unclosed quotes, handling that case @@ -510,7 +510,7 @@ define(function (require, exports, module) { const modifiedWord = word + nextChar; try { - return expandAbbr(modifiedWord, { syntax: "html", type: "markup", maxRepeat: 1000 }); + return expandAbbr(modifiedWord, { syntax: "html", type: "markup", maxRepeat: 400 }); } catch (innerError) { // If it still fails, return false return null;