WebKit Bugzilla
Attachment 362761 Details for
Bug 194796
: Web Inspector: Styles: Control-Space should force completion
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
patch.txt (text/plain), 5.43 KB, created by
Nikita Vasilyev
on 2019-02-22 14:00:19 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Nikita Vasilyev
Created:
2019-02-22 14:00:19 PST
Size:
5.43 KB
patch
obsolete
>diff --git a/Source/WebInspectorUI/ChangeLog b/Source/WebInspectorUI/ChangeLog >index 276a49be0d1..c2f087a22f6 100644 >--- a/Source/WebInspectorUI/ChangeLog >+++ b/Source/WebInspectorUI/ChangeLog >@@ -1,3 +1,25 @@ >+2019-02-22 Nikita Vasilyev <nvasilyev@apple.com> >+ >+ Web Inspector: Styles: Control-Space should force completion >+ https://bugs.webkit.org/show_bug.cgi?id=194796 >+ <rdar://problem/48180822> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Pressing Control-Space when editing CSS property should show completion popover, >+ even if the value is empty. >+ >+ * UserInterface/Models/CSSCompletions.js: >+ (WI.CSSCompletions.prototype.startsWith): >+ Performance optimization: exit early when `prefix` is empty. >+ >+ * UserInterface/Views/SpreadsheetStyleProperty.js: >+ (WI.SpreadsheetStyleProperty.prototype._nameCompletionDataProvider): >+ (WI.SpreadsheetStyleProperty.prototype._valueCompletionDataProvider): >+ * UserInterface/Views/SpreadsheetTextField.js: >+ (WI.SpreadsheetTextField.prototype._handleKeyDown): >+ (WI.SpreadsheetTextField.prototype._updateCompletions): >+ > 2019-02-19 Joseph Pecoraro <pecoraro@apple.com> > > Web Inspector: Improve ES6 Class instances in Heap Snapshot instances view >diff --git a/Source/WebInspectorUI/UserInterface/Models/CSSCompletions.js b/Source/WebInspectorUI/UserInterface/Models/CSSCompletions.js >index bb40d391b8c..5eea63fbee0 100644 >--- a/Source/WebInspectorUI/UserInterface/Models/CSSCompletions.js >+++ b/Source/WebInspectorUI/UserInterface/Models/CSSCompletions.js >@@ -265,11 +265,14 @@ WI.CSSCompletions = class CSSCompletions > > startsWith(prefix) > { >- var firstIndex = this._firstIndexOfPrefix(prefix); >+ if (prefix === "") >+ return this._acceptEmptyPrefix ? this._values.slice() : []; >+ >+ let firstIndex = this._firstIndexOfPrefix(prefix); > if (firstIndex === -1) > return []; > >- var results = []; >+ let results = []; > while (firstIndex < this._values.length && this._values[firstIndex].startsWith(prefix)) > results.push(this._values[firstIndex++]); > return results; >diff --git a/Source/WebInspectorUI/UserInterface/Views/SpreadsheetStyleProperty.js b/Source/WebInspectorUI/UserInterface/Views/SpreadsheetStyleProperty.js >index 5e0853a4793..c89e60cdc39 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/SpreadsheetStyleProperty.js >+++ b/Source/WebInspectorUI/UserInterface/Views/SpreadsheetStyleProperty.js >@@ -709,12 +709,15 @@ WI.SpreadsheetStyleProperty = class SpreadsheetStyleProperty extends WI.Object > } > } > >- _nameCompletionDataProvider(prefix) >+ _nameCompletionDataProvider(prefix, forceCompletion = false) > { >- return { >- prefix, >- completions: WI.CSSCompletions.cssNameCompletions.startsWith(prefix) >- }; >+ let completions; >+ if (!prefix && forceCompletion) >+ completions = WI.CSSCompletions.cssNameCompletions.values; >+ else >+ completions = WI.CSSCompletions.cssNameCompletions.startsWith(prefix); >+ >+ return {prefix, completions}; > } > > _handleValueBeforeInput(event) >@@ -740,14 +743,14 @@ WI.SpreadsheetStyleProperty = class SpreadsheetStyleProperty extends WI.Object > { > // For "border: 1px so|", we want to suggest "solid" based on "so" prefix. > let match = prefix.match(/[a-z0-9()-]+$/i); >- if (!match) >- return {completions: [], prefix: ""}; > >- prefix = match[0]; >+ prefix = match ? match[0] : ""; > let propertyName = this._nameElement.textContent.trim(); >+ let completionsForPropertyName = WI.CSSKeywordCompletions.forProperty(propertyName); >+ > return { > prefix, >- completions: WI.CSSKeywordCompletions.forProperty(propertyName).startsWith(prefix) >+ completions: completionsForPropertyName.startsWith(prefix) > }; > } > >diff --git a/Source/WebInspectorUI/UserInterface/Views/SpreadsheetTextField.js b/Source/WebInspectorUI/UserInterface/Views/SpreadsheetTextField.js >index ca5a84a554c..22afc1fbbee 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/SpreadsheetTextField.js >+++ b/Source/WebInspectorUI/UserInterface/Views/SpreadsheetTextField.js >@@ -278,6 +278,17 @@ WI.SpreadsheetTextField = class SpreadsheetTextField > } > } > >+ if (event.ctrlKey && event.code === "Space") { >+ event.stop(); >+ if (this._suggestionsView.visible) >+ this._suggestionsView.hide(); >+ else { >+ const forceCompletions = true; >+ this._updateCompletions(forceCompletions); >+ } >+ return; >+ } >+ > if (event.key === "Escape") { > event.stop(); > this._discardChange(); >@@ -358,13 +369,13 @@ WI.SpreadsheetTextField = class SpreadsheetTextField > this._delegate.spreadsheetTextFieldDidChange(this); > } > >- _updateCompletions() >+ _updateCompletions(forceCompletions = false) > { > if (!this._completionProvider) > return; > > let valueWithoutSuggestion = this.valueWithoutSuggestion(); >- let {completions, prefix} = this._completionProvider(valueWithoutSuggestion); >+ let {completions, prefix} = this._completionProvider(valueWithoutSuggestion, forceCompletions); > this._completionPrefix = prefix; > > if (!completions.length) {
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 194796
:
362349
|
362350
|
362761
|
363042
|
363252