+
{{ $t('pages.setting.editSource.file') }}
@@ -261,7 +266,7 @@ import JSON5 from "json5";
import { computed, nextTick, onBeforeUnmount, onMounted, reactive, ref, watch } from 'vue';
import { useRouter } from 'vue-router';
import { MessagePlugin } from 'tdesign-vue-next';
-import { BugIcon, DeleteIcon, ExtensionIcon, FileDownloadIcon, FileExportIcon, FileImportIcon, HelpRectangleIcon, InternetIcon, GestureClickIcon, TransformIcon } from 'tdesign-icons-vue-next';
+import { BugIcon, DeleteIcon, ExtensionIcon, HelpRectangleIcon, InternetIcon, GestureClickIcon, TransformIcon } from 'tdesign-icons-vue-next';
import jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker';
import htmlWorker from 'monaco-editor/esm/vs/language/html/html.worker?worker';
import tsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker';
@@ -278,6 +283,7 @@ import { getConfig, copyToClipboardApi } from '@/utils/tool';
import { getMubans } from '@/utils/drpy/template';
import { doWork as t3Work } from '@/utils/drpy/index';
import { pdfh, pdfa } from '@/utils/drpy/drpyInject';
+import { createDependencyProposals } from '@/utils/drpy/drpy_suggestions/drpy_suggestions';
const remote = window.require('@electron/remote');
const router = useRouter();
@@ -352,6 +358,10 @@ let form = ref({
}
});
+const tmp = reactive({
+ file: '文件管理'
+});
+
const isVisible = reactive({
template: false,
player: false,
@@ -563,6 +573,34 @@ const initEditor = () => {
// After onDidChangeModelContent
editor.getModel()!.pushEOL(config.eol);
+ monaco.languages.registerCompletionItemProvider('javascript', {
+ provideCompletionItems: (model, position, context, token) => {
+ const word = model.getWordUntilPosition(position);
+ const range = {
+ startLineNumber: position.lineNumber,
+ endLineNumber: position.lineNumber,
+ startColumn: word.startColumn,
+ endColumn: word.endColumn
+ };
+ const monacoRange = new monaco.Range(
+ range.startLineNumber,
+ range.startColumn,
+ range.endLineNumber,
+ range.endColumn
+ );
+ return {
+ suggestions: createDependencyProposals(monacoRange, monaco).map(proposal => ({
+ label: proposal.label,
+ kind: proposal.kind || monaco.languages.CompletionItemKind.Function, // 确保指定了一个有效的kind
+ insertText: proposal.insertText,
+ insertTextRules: proposal.insertTextRules || monaco.languages.CompletionItemInsertTextRule.None,
+ documentation: proposal.documentation,
+ range: monacoRange // 使用正确的范围类型
+ }))
+ };
+ }
+ });
+
const logBox = document.getElementById('logBox');
log = monaco.editor.create(logBox as HTMLElement, {
theme: config.theme,
@@ -692,6 +730,10 @@ const deleteEvent = async () => {
};
const fileEvent = async () => {
+ tmp.file = '文件';
+};
+
+const serverEvent = async () => {
window.electron.ipcRenderer.send('open-path', 'file', true)
};
@@ -905,11 +947,11 @@ const showReqParamDialog = () => {
isVisible.reqParam = true;
};
-const reqCancel = (e) => {
+const reqCancel = () => {
+ nextTick(() => (isVisible.reqParam = true));
form.value.req.header = '';
form.value.req.body = '';
form.value.req.contentType = 'application/json';
- e.preventDefault();
};
const showTemplateDialog = () => {
@@ -1005,6 +1047,16 @@ const proxyEvent = async () => {
cursor: pointer;
text-decoration: none;
+ :deep(.t-select-input--borderless .t-input:hover:not(.t-input--focused)) {
+ border-color: transparent;
+ color: var(--td-text-color-primary);
+ background-color: var(--td-bg-color-container-hover) !important;
+ }
+
+ :deep(.t-input) {
+ padding: 0;
+ }
+
&:hover {
transition: all 0.2s ease 0s;
color: var(--td-text-color-primary);
diff --git a/src/renderer/src/utils/drpy/drpy_suggestions/drpy_suggestions.ts b/src/renderer/src/utils/drpy/drpy_suggestions/drpy_suggestions.ts
new file mode 100644
index 000000000..38d6f298a
--- /dev/null
+++ b/src/renderer/src/utils/drpy/drpy_suggestions/drpy_suggestions.ts
@@ -0,0 +1,33 @@
+const createDependencyProposals = (range: object, monaco: any) => {
+ let snippets = [
+ {
+ label: 'ifelse',
+ kind: monaco.languages.CompletionItemKind.Snippet,
+ insertText: [
+ 'if ${1:condition} {',
+ '\t$0',
+ '} else {',
+ '\t',
+ '}'
+ ].join('\n'),
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
+ documentation: 'If-Else Statement',
+ range: range
+ },
+ {
+ label: '$js',
+ kind: monaco.languages.CompletionItemKind.Snippet,
+ insertText: [
+ '\\$js.toString(()=>{',
+ '$1',
+ '})',
+ ].join('\n'),
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
+ documentation: '$js工具',
+ range: range
+ },
+ ];
+ return snippets;
+}
+
+export { createDependencyProposals }