DEV: Remove underscore versions of TextareaTextManipulation functions (#16285)

Since 6a5ef27, we made public
versions of some TextareaTextManipulation methods. This commit removes
the old underscore versions of these methods:

_focusTextArea
_insertBlock
_insertText
_getSelected
_selectText
_replaceText
_applySurround
_addText
_extractTable
_isInside
This commit is contained in:
Martin Brennan 2022-03-28 13:23:50 +10:00 committed by GitHub
parent 230e82e948
commit 94207e27d1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 71 deletions

View File

@ -48,14 +48,7 @@ export default Mixin.create({
}, },
// ensures textarea scroll position is correct // ensures textarea scroll position is correct
//
// TODO (martin) clean up this indirection, functions used outside this
// file should not be prefixed with lowercase
focusTextArea() { focusTextArea() {
this._focusTextArea();
},
_focusTextArea() {
if (!this.element || this.isDestroying || this.isDestroyed) { if (!this.element || this.isDestroying || this.isDestroyed) {
return; return;
} }
@ -68,33 +61,15 @@ export default Mixin.create({
this._textarea.focus(); this._textarea.focus();
}, },
// TODO (martin) clean up this indirection, functions used outside this
// file should not be prefixed with lowercase
insertBlock(text) { insertBlock(text) {
this._insertBlock(text);
},
_insertBlock(text) {
this._addBlock(this.getSelected(), text); this._addBlock(this.getSelected(), text);
}, },
// TODO (martin) clean up this indirection, functions used outside this
// file should not be prefixed with lowercase
insertText(text, options) { insertText(text, options) {
this._insertText(text, options); this.addText(this.getSelected(), text, options);
}, },
_insertText(text, options) {
this._addText(this.getSelected(), text, options);
},
// TODO (martin) clean up this indirection, functions used outside this
// file should not be prefixed with lowercase
getSelected(trimLeading, opts) { getSelected(trimLeading, opts) {
return this._getSelected(trimLeading, opts);
},
_getSelected(trimLeading, opts) {
if (!this.ready || !this.element) { if (!this.ready || !this.element) {
return; return;
} }
@ -129,13 +104,7 @@ export default Mixin.create({
} }
}, },
// TODO (martin) clean up this indirection, functions used outside this
// file should not be prefixed with lowercase
selectText(from, length, opts = { scroll: true }) { selectText(from, length, opts = { scroll: true }) {
this._selectText(from, length, opts);
},
_selectText(from, length, opts = { scroll: true }) {
next(() => { next(() => {
if (!this.element) { if (!this.element) {
return; return;
@ -154,13 +123,7 @@ export default Mixin.create({
}); });
}, },
// TODO (martin) clean up this indirection, functions used outside this
// file should not be prefixed with lowercase
replaceText(oldVal, newVal, opts = {}) { replaceText(oldVal, newVal, opts = {}) {
this._replaceText(oldVal, newVal, opts);
},
_replaceText(oldVal, newVal, opts = {}) {
const val = this.value; const val = this.value;
const needleStart = val.indexOf(oldVal); const needleStart = val.indexOf(oldVal);
@ -203,13 +166,7 @@ export default Mixin.create({
} }
}, },
// TODO (martin) clean up this indirection, functions used outside this
// file should not be prefixed with lowercase
applySurround(sel, head, tail, exampleKey, opts) { applySurround(sel, head, tail, exampleKey, opts) {
this._applySurround(sel, head, tail, exampleKey, opts);
},
_applySurround(sel, head, tail, exampleKey, opts) {
const pre = sel.pre; const pre = sel.pre;
const post = sel.post; const post = sel.post;
@ -344,16 +301,10 @@ export default Mixin.create({
this._$textarea.prop("selectionStart", (pre + text).length + 2); this._$textarea.prop("selectionStart", (pre + text).length + 2);
this._$textarea.prop("selectionEnd", (pre + text).length + 2); this._$textarea.prop("selectionEnd", (pre + text).length + 2);
schedule("afterRender", this, this._focusTextArea); schedule("afterRender", this, this.focusTextArea);
}, },
// TODO (martin) clean up this indirection, functions used outside this
// file should not be prefixed with lowercase
addText(sel, text, options) { addText(sel, text, options) {
this._addText(sel, text, options);
},
_addText(sel, text, options) {
if (options && options.ensureSpace) { if (options && options.ensureSpace) {
if ((sel.pre + "").length > 0) { if ((sel.pre + "").length > 0) {
if (!sel.pre.match(/\s$/)) { if (!sel.pre.match(/\s$/)) {
@ -374,16 +325,10 @@ export default Mixin.create({
this._$textarea.prop("selectionStart", insert.length); this._$textarea.prop("selectionStart", insert.length);
this._$textarea.prop("selectionEnd", insert.length); this._$textarea.prop("selectionEnd", insert.length);
next(() => this._$textarea.trigger("change")); next(() => this._$textarea.trigger("change"));
this._focusTextArea(); this.focusTextArea();
}, },
// TODO (martin) clean up this indirection, functions used outside this
// file should not be prefixed with lowercase
extractTable(text) { extractTable(text) {
return this._extractTable(text);
},
_extractTable(text) {
if (text.endsWith("\n")) { if (text.endsWith("\n")) {
text = text.substring(0, text.length - 1); text = text.substring(0, text.length - 1);
} }
@ -420,13 +365,7 @@ export default Mixin.create({
return null; return null;
}, },
// TODO (martin) clean up this indirection, functions used outside this
// file should not be prefixed with lowercase
isInside(text, regex) { isInside(text, regex) {
return this._isInside(text, regex);
},
_isInside(text, regex) {
const matches = text.match(regex); const matches = text.match(regex);
return matches && matches.length % 2; return matches && matches.length % 2;
}, },
@ -452,7 +391,7 @@ export default Mixin.create({
const selected = this.getSelected(null, { lineVal: true }); const selected = this.getSelected(null, { lineVal: true });
const { pre, value: selectedValue, lineVal } = selected; const { pre, value: selectedValue, lineVal } = selected;
const isInlinePasting = pre.match(/[^\n]$/); const isInlinePasting = pre.match(/[^\n]$/);
const isCodeBlock = this._isInside(pre, /(^|\n)```/g); const isCodeBlock = this.isInside(pre, /(^|\n)```/g);
if ( if (
plainText && plainText &&
@ -461,7 +400,7 @@ export default Mixin.create({
!isCodeBlock !isCodeBlock
) { ) {
plainText = plainText.replace(/\r/g, ""); plainText = plainText.replace(/\r/g, "");
const table = this._extractTable(plainText); const table = this.extractTable(plainText);
if (table) { if (table) {
this.appEvents.trigger( this.appEvents.trigger(
`${this.composerEventPrefix}:insert-text`, `${this.composerEventPrefix}:insert-text`,
@ -475,7 +414,7 @@ export default Mixin.create({
if (isInlinePasting) { if (isInlinePasting) {
canPasteHtml = !( canPasteHtml = !(
lineVal.match(/^```/) || lineVal.match(/^```/) ||
this._isInside(pre, /`/g) || this.isInside(pre, /`/g) ||
lineVal.match(/^ /) lineVal.match(/^ /)
); );
} else { } else {
@ -502,7 +441,7 @@ export default Mixin.create({
) { ) {
// When specified, linkify supports fuzzy links and emails. Prefer providing the protocol. // When specified, linkify supports fuzzy links and emails. Prefer providing the protocol.
// eg: pasting "example@discourse.org" may apply a link format of "mailto:example@discourse.org" // eg: pasting "example@discourse.org" may apply a link format of "mailto:example@discourse.org"
this._addText(selected, `[${selectedValue}](${match.url})`); this.addText(selected, `[${selectedValue}](${match.url})`);
handled = true; handled = true;
} }
} }
@ -627,9 +566,9 @@ export default Mixin.create({
if (isEmpty(captures)) { if (isEmpty(captures)) {
if (selected.pre.match(/\S$/)) { if (selected.pre.match(/\S$/)) {
this._addText(selected, ` :${code}:`); this.addText(selected, ` :${code}:`);
} else { } else {
this._addText(selected, `:${code}:`); this.addText(selected, `:${code}:`);
} }
} else { } else {
let numOfRemovedChars = selected.pre.length - captures[1].length; let numOfRemovedChars = selected.pre.length - captures[1].length;
@ -639,7 +578,7 @@ export default Mixin.create({
); );
selected.start -= numOfRemovedChars; selected.start -= numOfRemovedChars;
selected.end -= numOfRemovedChars; selected.end -= numOfRemovedChars;
this._addText(selected, `${code}:`); this.addText(selected, `${code}:`);
} }
}, },
}); });