SYNC: Merge pull request #14 from dbgate/ai-sql

This commit is contained in:
Jan Prochazka
2025-10-14 11:01:33 +02:00
committed by Diflow
parent 23fb5852ba
commit 5e2cdca103
7 changed files with 179 additions and 82 deletions

View File

@@ -11,6 +11,7 @@
export let showCaller = false;
export let startLine = 0;
export let onMessageClick = null;
export let onExplainError = null;
export let filter = '';
@@ -90,6 +91,7 @@
{startLine}
previousRow={index > 0 ? items[index - 1] : null}
{onMessageClick}
{onExplainError}
/>
{/each}
</table>

View File

@@ -16,6 +16,7 @@
import JSONTree from '../jsontree/JSONTree.svelte';
import FontIcon from '../icons/FontIcon.svelte';
import { plusExpandIcon } from '../icons/expandIcons';
import InlineButton from '../buttons/InlineButton.svelte';
export let row;
export let index;
@@ -27,6 +28,7 @@
export let previousRow = null;
export let onMessageClick = null;
export let onExplainError = null;
let isExpanded = false;
</script>
@@ -43,6 +45,15 @@
<FontIcon icon={plusExpandIcon(isExpanded)} />
</span>
{row.message}
{#if row.severity == 'error' && onExplainError}
<InlineButton
title="Explain error"
inlineBlock
on:click={e => {
onExplainError(row);
}}><FontIcon icon="img ai" /> Explain</InlineButton
>
{/if}
</td>
<td>{moment(row.time).format('HH:mm:ss')}</td>
<td>{formatDuration(new Date(row.time).getTime() - time0)}</td>

View File

@@ -17,6 +17,7 @@
export let startLine = 0;
export let onChangeErrors = null;
export let onMessageClick = null;
export let onExplainError = null;
const cachedMessagesRef = createRef([]);
const lastErrorMessageCountRef = createRef(0);
@@ -70,5 +71,13 @@
{#if showNoMessagesAlert && (!displayedMessages || displayedMessages.length == 0)}
<ErrorInfo message="No messages" icon="img alert" />
{:else}
<MessageView items={displayedMessages} {onMessageClick} {showProcedure} {showLine} {showCaller} {startLine} />
<MessageView
items={displayedMessages}
{onMessageClick}
{showProcedure}
{showLine}
{showCaller}
{startLine}
{onExplainError}
/>
{/if}

View File

@@ -21,8 +21,8 @@ function getParsedLocalStorage(key) {
const saveHandlersList = [];
export default function useEditorData({ tabid, reloadToken = 0, loadFromArgs = null, onInitialData = null }) {
const localStorageKey = `tabdata_editor_${tabid}`;
export default function useEditorData({ tabid, reloadToken = 0, loadFromArgs = null, onInitialData = null, editorKeyword = 'editor' }) {
const localStorageKey = `tabdata_${editorKeyword}_${tabid}`;
let changeCounter = 0;
let savedCounter = 0;