feat(editor): add semantic diagnostics toolbar toggle
This commit is contained in:
1 parent
345cd3f8b3
commit
3132b17323
9 files changed
+43
-1
No files matched your search
@@ -1,7 +1,7 @@
|
||||
<script setup lang="ts">
|
||||
import { computed, ref, watch, watchEffect } from "vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { Play, CirclePlay, Loader2, Square, Database, Check, Table2, AlignLeft, GitBranch, Save, FolderOpen, X, Shield, Download, RotateCcw, AlertTriangle, ClipboardPaste, Minimize2 } from "@lucide/vue";
|
||||
import { Play, CirclePlay, Loader2, Square, Database, Check, Table2, AlignLeft, GitBranch, Save, FolderOpen, X, Shield, Download, RotateCcw, AlertTriangle, ClipboardPaste, Minimize2, SpellCheck2 } from "@lucide/vue";
|
||||
import { Button } from "@/components/ui/button";
|
||||
import { SearchableSelect } from "@/components/ui/searchable-select";
|
||||
import { Tooltip, TooltipTrigger, TooltipContent } from "@/components/ui/tooltip";
|
||||
@@ -139,6 +139,17 @@ const explainAnalyzeTooltip = computed(() => {
|
||||
const canSaveSql = computed(() => !!props.activeTab.externalSqlPath || !!props.activeTab.sql.trim());
|
||||
const keywordCaseIsLower = computed(() => props.sqlKeywordCase === "lower");
|
||||
const keywordCaseToggleTooltip = computed(() => (keywordCaseIsLower.value ? t("toolbar.keywordCaseUpper") : t("toolbar.keywordCaseLower")));
|
||||
const sqlSemanticDiagnosticsEnabled = computed(() => settingsStore.editorSettings.sqlSemanticDiagnosticsEnabled);
|
||||
const sqlSemanticDiagnosticsToggleTooltip = computed(() => (sqlSemanticDiagnosticsEnabled.value ? t("toolbar.sqlSemanticDiagnosticsToggleOn") : t("toolbar.sqlSemanticDiagnosticsToggleOff")));
|
||||
const supportsSqlSemanticDiagnosticsToggle = computed(() => {
|
||||
const dbType = props.activeConnection?.db_type;
|
||||
return dbType !== "redis" && dbType !== "victoriametrics";
|
||||
});
|
||||
function toggleSqlSemanticDiagnostics() {
|
||||
settingsStore.updateEditorSettings({
|
||||
sqlSemanticDiagnosticsMode: sqlSemanticDiagnosticsEnabled.value ? "disabled" : "enabled",
|
||||
});
|
||||
}
|
||||
const transactionTooltip = computed(() => {
|
||||
const isAgent = (props.activeConnection?.db_type as string) === "agent";
|
||||
const isManual = props.autoCommit === false;
|
||||
@@ -361,6 +372,21 @@ async function changeCatalog(selectedCatalog: string) {
|
||||
</TooltipTrigger>
|
||||
<TooltipContent>{{ keywordCaseToggleTooltip }}</TooltipContent>
|
||||
</Tooltip>
|
||||
<Tooltip v-if="supportsSqlSemanticDiagnosticsToggle">
|
||||
<TooltipTrigger as-child>
|
||||
<Button
|
||||
variant="ghost"
|
||||
size="icon"
|
||||
class="h-6 w-6"
|
||||
:class="sqlSemanticDiagnosticsEnabled ? 'text-emerald-600 bg-emerald-500/10 hover:bg-emerald-500/20 hover:text-emerald-700 dark:text-emerald-300 dark:hover:text-emerald-200' : 'text-muted-foreground/50 hover:bg-muted hover:text-muted-foreground'"
|
||||
:aria-label="sqlSemanticDiagnosticsToggleTooltip"
|
||||
@click="toggleSqlSemanticDiagnostics"
|
||||
>
|
||||
<SpellCheck2 class="h-3.5 w-3.5" />
|
||||
</Button>
|
||||
</TooltipTrigger>
|
||||
<TooltipContent>{{ sqlSemanticDiagnosticsToggleTooltip }}</TooltipContent>
|
||||
</Tooltip>
|
||||
<Tooltip v-if="activeConnection?.db_type === 'redis'">
|
||||
<TooltipTrigger as-child>
|
||||
<Button
|
||||
|
||||
@@ -157,6 +157,8 @@ export default {
|
||||
compressSql: "Compress SQL",
|
||||
keywordCaseLower: "Use lower-case SQL keywords",
|
||||
keywordCaseUpper: "Use upper-case SQL keywords",
|
||||
sqlSemanticDiagnosticsToggleOn: "SQL semantic diagnostics: On (click to disable)",
|
||||
sqlSemanticDiagnosticsToggleOff: "SQL semantic diagnostics: Off (click to enable)",
|
||||
autoCommit: "Auto Commit",
|
||||
manualTransaction: "Manual Transaction",
|
||||
autoCommitAgent: "Auto Commit (depends on Agent backend)",
|
||||
|
||||
@@ -159,6 +159,8 @@ export default withEnglishFallback({
|
||||
compressSql: "Comprimir SQL",
|
||||
keywordCaseLower: "Usar palabras clave SQL en minúsculas",
|
||||
keywordCaseUpper: "Usar palabras clave SQL en mayúsculas",
|
||||
sqlSemanticDiagnosticsToggleOn: "Diagnóstico semántico de SQL: activado (clic para desactivar)",
|
||||
sqlSemanticDiagnosticsToggleOff: "Diagnóstico semántico de SQL: desactivado (clic para activar)",
|
||||
autoCommit: "Auto Commit",
|
||||
manualTransaction: "Transacción Manual",
|
||||
autoCommitAgent: "Auto Commit (depende del backend del Agente)",
|
||||
|
||||
@@ -158,6 +158,8 @@ export default withEnglishFallback({
|
||||
compressSql: "Comprimi SQL",
|
||||
keywordCaseLower: "Usa parole chiave SQL minuscole",
|
||||
keywordCaseUpper: "Usa parole chiave SQL maiuscole",
|
||||
sqlSemanticDiagnosticsToggleOn: "Diagnostica semantica SQL: attiva (clic per disattivare)",
|
||||
sqlSemanticDiagnosticsToggleOff: "Diagnostica semantica SQL: disattiva (clic per attivare)",
|
||||
autoCommit: "Auto Commit",
|
||||
manualTransaction: "Transazione Manuale",
|
||||
autoCommitAgent: "Auto Commit (dipende dal backend dell'Agente)",
|
||||
|
||||
@@ -159,6 +159,8 @@ export default withEnglishFallback({
|
||||
compressSql: "SQLを圧縮",
|
||||
keywordCaseLower: "SQLキーワードを小文字にする",
|
||||
keywordCaseUpper: "SQLキーワードを大文字にする",
|
||||
sqlSemanticDiagnosticsToggleOn: "SQLセマンティック診断:オン(クリックでオフ)",
|
||||
sqlSemanticDiagnosticsToggleOff: "SQLセマンティック診断:オフ(クリックでオン)",
|
||||
autoCommit: "自動コミット",
|
||||
manualTransaction: "手動トランザクション",
|
||||
autoCommitAgent: "自動コミット(Agentバックエンドに依存)",
|
||||
|
||||
@@ -158,6 +158,8 @@ export default withEnglishFallback({
|
||||
compressSql: "SQL 압축",
|
||||
keywordCaseLower: "SQL 키워드 소문자 사용",
|
||||
keywordCaseUpper: "SQL 키워드 대문자 사용",
|
||||
sqlSemanticDiagnosticsToggleOn: "SQL 의미 진단: 켜짐 (클릭하여 끄기)",
|
||||
sqlSemanticDiagnosticsToggleOff: "SQL 의미 진단: 꺼짐 (클릭하여 켜기)",
|
||||
autoCommit: "자동 커밋",
|
||||
manualTransaction: "수동 트랜잭션",
|
||||
autoCommitAgent: "자동 커밋 (Agent 백엔드에 따라)",
|
||||
|
||||
@@ -159,6 +159,8 @@ export default withEnglishFallback({
|
||||
compressSql: "Comprimir SQL",
|
||||
keywordCaseLower: "Usar palavras-chave SQL em minúsculas",
|
||||
keywordCaseUpper: "Usar palavras-chave SQL em maiúsculas",
|
||||
sqlSemanticDiagnosticsToggleOn: "Diagnóstico semântico de SQL: ativado (clique para desativar)",
|
||||
sqlSemanticDiagnosticsToggleOff: "Diagnóstico semântico de SQL: desativado (clique para ativar)",
|
||||
autoCommit: "Auto Commit",
|
||||
manualTransaction: "Transação Manual",
|
||||
autoCommitAgent: "Auto Commit (depende do backend do Agente)",
|
||||
|
||||
@@ -82,6 +82,8 @@ export default withEnglishFallback({
|
||||
compressSql: "压缩 SQL",
|
||||
keywordCaseLower: "使用小写 SQL 关键字",
|
||||
keywordCaseUpper: "使用大写 SQL 关键字",
|
||||
sqlSemanticDiagnosticsToggleOn: "SQL 语义诊断:已开启(点击关闭)",
|
||||
sqlSemanticDiagnosticsToggleOff: "SQL 语义诊断:已关闭(点击开启)",
|
||||
autoCommit: "自动提交",
|
||||
manualTransaction: "手动事务",
|
||||
autoCommitAgent: "自动提交(取决于 Agent 后端数据库)",
|
||||
|
||||
@@ -159,6 +159,8 @@ export default withEnglishFallback({
|
||||
compressSql: "壓縮 SQL",
|
||||
keywordCaseLower: "使用小寫 SQL 關鍵字",
|
||||
keywordCaseUpper: "使用大寫 SQL 關鍵字",
|
||||
sqlSemanticDiagnosticsToggleOn: "SQL 語意診斷:已開啟(點擊關閉)",
|
||||
sqlSemanticDiagnosticsToggleOff: "SQL 語意診斷:已關閉(點擊開啟)",
|
||||
autoCommit: "自動提交",
|
||||
manualTransaction: "手動事務",
|
||||
autoCommitAgent: "自動提交(取決於 Agent 後端資料庫)",
|
||||
|
||||
Reference in new issue
Block a user