mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
better handling of anonyous source
This commit is contained in:
@ -59,6 +59,7 @@ export class QuickReply {
|
|||||||
/**@type {HTMLElement}*/ editorDom;
|
/**@type {HTMLElement}*/ editorDom;
|
||||||
|
|
||||||
/**@type {HTMLTextAreaElement}*/ editorMessage;
|
/**@type {HTMLTextAreaElement}*/ editorMessage;
|
||||||
|
/**@type {HTMLTextAreaElement}*/ editorMessageLabel;
|
||||||
/**@type {HTMLElement}*/ editorSyntax;
|
/**@type {HTMLElement}*/ editorSyntax;
|
||||||
/**@type {HTMLElement}*/ editorExecuteBtn;
|
/**@type {HTMLElement}*/ editorExecuteBtn;
|
||||||
/**@type {HTMLElement}*/ editorExecuteBtnPause;
|
/**@type {HTMLElement}*/ editorExecuteBtnPause;
|
||||||
@ -316,6 +317,7 @@ export class QuickReply {
|
|||||||
localStorage.setItem('qr--syntax', JSON.stringify(syntax.checked));
|
localStorage.setItem('qr--syntax', JSON.stringify(syntax.checked));
|
||||||
updateSyntaxEnabled();
|
updateSyntaxEnabled();
|
||||||
});
|
});
|
||||||
|
this.editorMessageLabel = dom.querySelector('label[for="qr--modal-message"]');
|
||||||
/**@type {HTMLTextAreaElement}*/
|
/**@type {HTMLTextAreaElement}*/
|
||||||
const message = dom.querySelector('#qr--modal-message');
|
const message = dom.querySelector('#qr--modal-message');
|
||||||
this.editorMessage = message;
|
this.editorMessage = message;
|
||||||
@ -770,6 +772,7 @@ export class QuickReply {
|
|||||||
}
|
}
|
||||||
async executeFromEditor() {
|
async executeFromEditor() {
|
||||||
if (this.isExecuting) return;
|
if (this.isExecuting) return;
|
||||||
|
const uuidCheck = /^[0-9a-z]{8}(-[0-9a-z]{4}){3}-[0-9a-z]{12}$/;
|
||||||
const oText = this.message;
|
const oText = this.message;
|
||||||
this.isExecuting = true;
|
this.isExecuting = true;
|
||||||
this.editorDom.classList.add('qr--isExecuting');
|
this.editorDom.classList.add('qr--isExecuting');
|
||||||
@ -828,7 +831,27 @@ export class QuickReply {
|
|||||||
// this.editorMessage.value = closure.fullText;
|
// this.editorMessage.value = closure.fullText;
|
||||||
// this.editorMessage.dispatchEvent(new Event('input', { bubbles:true }));
|
// this.editorMessage.dispatchEvent(new Event('input', { bubbles:true }));
|
||||||
syntax.innerHTML = hljs.highlight(`${closure.fullText}${closure.fullText.slice(-1) == '\n' ? ' ' : ''}`, { language:'stscript', ignoreIllegals:true })?.value;
|
syntax.innerHTML = hljs.highlight(`${closure.fullText}${closure.fullText.slice(-1) == '\n' ? ' ' : ''}`, { language:'stscript', ignoreIllegals:true })?.value;
|
||||||
this.editorDom.querySelector('label[for="qr--modal-message"]').textContent = closure.source;
|
this.editorMessageLabel.innerHTML = '';
|
||||||
|
if (uuidCheck.test(closure.source)) {
|
||||||
|
const p0 = document.createElement('span'); {
|
||||||
|
p0.textContent = 'anonymous: ';
|
||||||
|
this.editorMessageLabel.append(p0);
|
||||||
|
}
|
||||||
|
const p1 = document.createElement('strong'); {
|
||||||
|
p1.textContent = executor.source.slice(0,5);
|
||||||
|
this.editorMessageLabel.append(p1);
|
||||||
|
}
|
||||||
|
const p2 = document.createElement('span'); {
|
||||||
|
p2.textContent = executor.source.slice(5, -5);
|
||||||
|
this.editorMessageLabel.append(p2);
|
||||||
|
}
|
||||||
|
const p3 = document.createElement('strong'); {
|
||||||
|
p3.textContent = executor.source.slice(-5);
|
||||||
|
this.editorMessageLabel.append(p3);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.editorMessageLabel.textContent = executor.source;
|
||||||
|
}
|
||||||
const source = closure.source;
|
const source = closure.source;
|
||||||
this.editorDebugState.innerHTML = '';
|
this.editorDebugState.innerHTML = '';
|
||||||
let ci = -1;
|
let ci = -1;
|
||||||
@ -1169,7 +1192,26 @@ export class QuickReply {
|
|||||||
const src = document.createElement('div'); {
|
const src = document.createElement('div'); {
|
||||||
src.classList.add('qr--source');
|
src.classList.add('qr--source');
|
||||||
const line = closure.fullText.slice(0, executor.start).split('\n').length;
|
const line = closure.fullText.slice(0, executor.start).split('\n').length;
|
||||||
src.textContent = `${executor.source}:${line}`;
|
if (uuidCheck.test(executor.source)) {
|
||||||
|
const p1 = document.createElement('span'); {
|
||||||
|
p1.classList.add('qr--fixed');
|
||||||
|
p1.textContent = executor.source.slice(0,5);
|
||||||
|
src.append(p1);
|
||||||
|
}
|
||||||
|
const p2 = document.createElement('span'); {
|
||||||
|
p2.classList.add('qr--truncated');
|
||||||
|
p2.textContent = '…';
|
||||||
|
src.append(p2);
|
||||||
|
}
|
||||||
|
const p3 = document.createElement('span'); {
|
||||||
|
p3.classList.add('qr--fixed');
|
||||||
|
p3.textContent = `${executor.source.slice(-5)}:${line}`;
|
||||||
|
src.append(p3);
|
||||||
|
}
|
||||||
|
src.title = `anonymous: ${executor.source}`;
|
||||||
|
} else {
|
||||||
|
src.textContent = `${executor.source}:${line}`;
|
||||||
|
}
|
||||||
item.append(src);
|
item.append(src);
|
||||||
}
|
}
|
||||||
wrap.append(item);
|
wrap.append(item);
|
||||||
@ -1227,7 +1269,8 @@ export class QuickReply {
|
|||||||
if (noSyntax) {
|
if (noSyntax) {
|
||||||
this.editorDom.querySelector('#qr--modal-messageHolder').classList.add('qr--noSyntax');
|
this.editorDom.querySelector('#qr--modal-messageHolder').classList.add('qr--noSyntax');
|
||||||
}
|
}
|
||||||
this.editorDom.querySelector('label[for="qr--modal-message"]').textContent = 'Message / Command: ';
|
this.editorMessageLabel.innerHTML = '';
|
||||||
|
this.editorMessageLabel.textContent = 'Message / Command: ';
|
||||||
this.editorMessage.value = oText;
|
this.editorMessage.value = oText;
|
||||||
this.editorMessage.dispatchEvent(new Event('input', { bubbles:true }));
|
this.editorMessage.dispatchEvent(new Event('input', { bubbles:true }));
|
||||||
this.editorExecutePromise = null;
|
this.editorExecutePromise = null;
|
||||||
|
Reference in New Issue
Block a user