diff --git a/README.md b/README.md index 85bda62dc..4d0cb49cc 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,6 @@ Add this code to your page: - [Dev Tools](https://livecodes.io/docs/features/tools-pane) ([console](https://livecodes.io/docs/features/console), [compiled code viewer](https://livecodes.io/docs/features/compiled-code), [test runner](https://livecodes.io/docs/features/tests)) - [Code formatting](https://livecodes.io/docs/features/code-format) - [Intellisense](https://livecodes.io/docs/features/intellisense) -- [AI Code Assistant 🪄](https://livecodes.io/docs/features/ai) - [Lite mode](https://livecodes.io/docs/features/lite) - [Read-only mode](https://livecodes.io/docs/features/read-only) - [Broadcast](https://livecodes.io/docs/features/broadcast) @@ -270,11 +269,6 @@ LiveCodes uses services that are generously provided by:

- - Windsurf -

-

-

DigitalOcean

@@ -310,11 +304,6 @@ LiveCodes uses services that are generously provided by:

- - BundleWatch -

-

-

BrowserStack

diff --git a/docs/docs/configuration/configuration-object.mdx b/docs/docs/configuration/configuration-object.mdx index fbd5982f6..eae8a9411 100644 --- a/docs/docs/configuration/configuration-object.mdx +++ b/docs/docs/configuration/configuration-object.mdx @@ -451,7 +451,7 @@ Sets result page [zoom level](../features/result.mdx#result-page-zoom). ## User Settings These are properties that define the [user settings](./../features/user-settings.mdx), including [editor settings](../features/editor-settings.mdx). - +{/* ### `enableAI` Type: [`boolean`](../api/interfaces/Config.md#enableai) @@ -459,6 +459,7 @@ Type: [`boolean`](../api/interfaces/Config.md#enableai) Default: `false` If `true`, [AI code assistant](../features/ai.mdx) is enabled. + */} ### `autoupdate` diff --git a/docs/docs/credits.mdx b/docs/docs/credits.mdx index e7ea48b5d..4d6dc624a 100644 --- a/docs/docs/credits.mdx +++ b/docs/docs/credits.mdx @@ -50,15 +50,6 @@ LiveCodes uses services that are generously provided by: >

-

- - Windsurf - -

-

- - BundleWatch - -

Windsurf logo - -## Examples: - -JavaScript: - - - -Python: - - - -## Instructions - -The AI code assistant can be enabled from: - -### UI - -The [editor settings](./editor-settings.mdx) screen (Settings menu → Editor Settings → Enable AI Code Assistant). - -import RunInLiveCodes from '../../src/components/RunInLiveCodes.tsx'; - - - -![LiveCodes Editor Settings](../../static/img/screenshots/editor-settings-1.jpg) - -**Note** - -When set from the UI, this configuration is saved locally to [user settings](./user-settings.mdx) and is remembered across sessions. - -### Configuration - -Alternatively, this can be enabled (_only for the current session_) using the [`enableAI`](../configuration/configuration-object.mdx#enableai) property in the [configuration object](../configuration/configuration-object.mdx). This can be used to enable the AI code assistant in [embedded playgrounds](./embeds.mdx). - -Example: - -```js -import { createPlayground } from 'livecodes'; - -createPlayground('#container', { - config: { - // highlight-next-line - enableAI: true, - }, -}); -``` - -Also this can be enabled using [query params](../configuration/query-params.mdx) (e.g. https://livecodes.io/?enableAI). - -## Usage - -On typing, the code completion suggestions will be shown in dimmed color. Press Tab to accept, or Esc to cancel. - -On mobile, tap on the suggestion to accept it, or continue typing to reject. - -:::caution Note - -Please note that when using Windsurf AI assistant, your code is sent to Windsurf servers for code completion. However, your code is not used for training their model. Check Windsurf [FAQ](https://windsurf.com/faq#will-windsurf-regurgitate-private-code) and [privacy policy](https://windsurf.com/privacy-policy) for more details. - -::: diff --git a/docs/docs/features/command-menu.mdx b/docs/docs/features/command-menu.mdx index e69cbdf2b..46194b7aa 100644 --- a/docs/docs/features/command-menu.mdx +++ b/docs/docs/features/command-menu.mdx @@ -7,7 +7,7 @@ It can be triggered from the keyboard by pressing Ctrl + K ![Open Command Menu from UI](../../static/img/screenshots/command-menu-1.jpg) The available commands cover a wide range of functionality, like showing and hiding UI elements (e.g. different editors, the [result page](./result.mdx), [console](./console.mdx), [compiled code viewer](./compiled-code.mdx), and [tests](./tests.mdx)), changing [languages](../languages), loading [starter templates](./templates.mdx), opening different screens (e.g. new project, opening saved projects, [import](./import.mdx), [embeds](./embeds.mdx), [deploy](./deploy.mdx), [share](./share.mdx) and more). -In addition many commands can be executed from the command menu, such as running code, formatting code, changing settings (e.g. autorun, autosave, [AI code assistant](./ai.mdx), changing [themes](./themes.mdx), [editor settings](./editor-settings.mdx), and more). +In addition many commands can be executed from the command menu, such as running code, formatting code, changing settings (e.g. autorun, autosave, changing [themes](./themes.mdx), [editor settings](./editor-settings.mdx), and more). ![LiveCodes Command Menu](../../static/img/screenshots/command-menu-2.jpg) diff --git a/docs/docs/features/editor-settings.mdx b/docs/docs/features/editor-settings.mdx index 66a2cf936..ced2203df 100644 --- a/docs/docs/features/editor-settings.mdx +++ b/docs/docs/features/editor-settings.mdx @@ -17,10 +17,11 @@ import RunInLiveCodes from '../../src/components/RunInLiveCodes.tsx'; A preview code editor is displayed to preview the settings in real time. The settings selected in the `Editor Settings` screen are saved locally to [user settings](./user-settings.mdx) and are used subsequently. These include: - +{/* ### Enable AI Code Assistant Enables the [AI code assistant](./ai.mdx). (Free and no account required) + */} ### Code Editor diff --git a/docs/docs/features/index.mdx b/docs/docs/features/index.mdx index a51c2bea1..7d3e02020 100644 --- a/docs/docs/features/index.mdx +++ b/docs/docs/features/index.mdx @@ -20,10 +20,6 @@ In this page, a quick overview of the important features are presented. A more d The default code editor is the powerful editor that powers [VS Code](https://code.visualstudio.com/), featuring code-completion, go-to-definition, multi-cursor support and other powerful features you got used to. The editor is very [customizable](./editor-settings.mdx). It supports [keyboard shortcuts](./keyboard-shortcuts.mdx), [code formatting](./code-format.mdx), [Emmet abbreviations](./editor-settings.mdx#emmet) and even [Vim and Emacs bindings](./editor-settings.mdx#editor-modes). -## AI Code Assistant - -LiveCodes supports AI-powered code completion, totally for **free**, using [Windsurf](https://windsurf.com/). No account or tokens required. Enable from [editor settings](./ai.mdx#ui) and enjoy the magic! - ## Mobile-friendly The responsive layout allows working on devices with different screen sizes. On mobile, a lighter-weight touch-friendly code editor (CodeMirror 6) is used, so that you can experiment your ideas on the go. diff --git a/docs/docusaurus.config.ts b/docs/docusaurus.config.ts index 9acc45ced..e1a4c6dbf 100644 --- a/docs/docusaurus.config.ts +++ b/docs/docusaurus.config.ts @@ -159,10 +159,10 @@ const config: Config = { label: 'Import...', href: 'pathname:///../?screen=import', }, - { - label: 'AI Code Assistant 🪄', - to: '/features/ai', - }, + // { + // label: 'AI Code Assistant 🪄', + // to: '/features/ai', + // }, { label: 'Bookmarklet', to: '/bookmarklet', diff --git a/docs/sidebars.ts b/docs/sidebars.ts index 904912f99..ecc74e380 100644 --- a/docs/sidebars.ts +++ b/docs/sidebars.ts @@ -32,7 +32,7 @@ const sidebars: SidebarsConfig = { 'features/tests', 'features/module-resolution', 'features/intellisense', - 'features/ai', + // 'features/ai', 'features/code-format', 'features/command-menu', 'features/keyboard-shortcuts', diff --git a/docs/src/components/HomepageCarousel.tsx b/docs/src/components/HomepageCarousel.tsx index 6a8238f9b..8c322b2bf 100644 --- a/docs/src/components/HomepageCarousel.tsx +++ b/docs/src/components/HomepageCarousel.tsx @@ -42,10 +42,10 @@ const screenshots = [ label: 'IntelliSense (autocomplete)', url: './img/screenshots/intellisense-3.jpg', }, - { - label: 'AI Code Assistant', - url: './img/screenshots/ai-1.jpg', - }, + // { + // label: 'AI Code Assistant', + // url: './img/screenshots/ai-1.jpg', + // }, { label: 'Console for quick inspection', url: './img/screenshots/console-1.jpg', diff --git a/docs/src/components/HomepageFeatures.tsx b/docs/src/components/HomepageFeatures.tsx index 000ff383a..53f03939f 100644 --- a/docs/src/components/HomepageFeatures.tsx +++ b/docs/src/components/HomepageFeatures.tsx @@ -80,20 +80,20 @@ const FeatureList2: FeatureItem[] = [ ), }, - { - title: 'AI Code Assistant', - image: './img/magic-wand.svg', - description: ( - <> - Leverage the power of AI to help you write/learn code, using - the free Copilot alternative. It understands the context of your code and - comments to generate suggestions. It has a wide range of language support, and it works - everywhere (in the standalone app,{' '} - embedded playgrounds and{' '} - self-hosted apps). - - ), - }, + // { + // title: 'AI Code Assistant', + // image: './img/magic-wand.svg', + // description: ( + // <> + // Leverage the power of AI to help you write/learn code, using + // the free Copilot alternative. It understands the context of your code and + // comments to generate suggestions. It has a wide range of language support, and it works + // everywhere (in the standalone app,{' '} + // embedded playgrounds and{' '} + // self-hosted apps). + // + // ), + // }, { title: 'Mobile-Friendly', image: './img/responsive.svg', diff --git a/src/livecodes/UI/command-menu-actions.ts b/src/livecodes/UI/command-menu-actions.ts index ca81c412e..8d7816e64 100644 --- a/src/livecodes/UI/command-menu-actions.ts +++ b/src/livecodes/UI/command-menu-actions.ts @@ -600,24 +600,24 @@ export const getCommandMenuActions = ({ UI.getEditorSettingsLink()?.click(); }, }, - { - id: 'Enable AI Code Assistant', - title: window.deps.translateString('commandMenu.enableAI', 'Enable AI Code Assistant'), - content: getContent('Enable AI Code Assistant'), - mdIcon: 'toggle_on', - handler: () => { - changeEditorSettings({ enableAI: true }); - }, - }, - { - id: 'Disable AI Code Assistant', - title: window.deps.translateString('commandMenu.disableAI', 'Disable AI Code Assistant'), - content: getContent('Disable AI Code Assistant'), - mdIcon: 'toggle_off', - handler: () => { - changeEditorSettings({ enableAI: false }); - }, - }, + // { + // id: 'Enable AI Code Assistant', + // title: window.deps.translateString('commandMenu.enableAI', 'Enable AI Code Assistant'), + // content: getContent('Enable AI Code Assistant'), + // mdIcon: 'toggle_on', + // handler: () => { + // changeEditorSettings({ enableAI: true }); + // }, + // }, + // { + // id: 'Disable AI Code Assistant', + // title: window.deps.translateString('commandMenu.disableAI', 'Disable AI Code Assistant'), + // content: getContent('Disable AI Code Assistant'), + // mdIcon: 'toggle_off', + // handler: () => { + // changeEditorSettings({ enableAI: false }); + // }, + // }, { id: 'Enable Auto Update', title: window.deps.translateString('commandMenu.enableAutoUpdate', 'Enable Auto Update'), diff --git a/src/livecodes/UI/editor-settings.ts b/src/livecodes/UI/editor-settings.ts index 21ef9f755..efd75110a 100644 --- a/src/livecodes/UI/editor-settings.ts +++ b/src/livecodes/UI/editor-settings.ts @@ -70,23 +70,23 @@ export const createEditorSettingsUI = async ({ note?: string; } const formFields: FormField[] = [ - { - title: window.deps.translateString( - 'editorSettings.enableAI.heading', - 'Enable AI Code Assistant', - ), - name: 'enableAI', - options: [{ value: 'true' }], - help: `${process.env.DOCS_BASE_URL}features/ai`, - note: window.deps.translateString( - 'editorSettings.enableAI.note', - 'Powered by ', - { - isHTML: true, - baseUrl, - }, - ), - }, + // { + // title: window.deps.translateString( + // 'editorSettings.enableAI.heading', + // 'Enable AI Code Assistant', + // ), + // name: 'enableAI', + // options: [{ value: 'true' }], + // help: `${process.env.DOCS_BASE_URL}features/ai`, + // note: window.deps.translateString( + // 'editorSettings.enableAI.note', + // 'Powered by ', + // { + // isHTML: true, + // baseUrl, + // }, + // ), + // }, { title: window.deps.translateString('editorSettings.editor.heading', 'Editor'), name: 'editor', @@ -532,12 +532,12 @@ export const createEditorSettingsUI = async ({ }); } - const windsurfLogo = document.getElementById('windsurf-logo')!; - if (formData.theme === 'light') { - windsurfLogo.style.filter = 'invert(1)'; - } else { - windsurfLogo.style.filter = 'unset'; - } + // const windsurfLogo = document.getElementById('windsurf-logo')!; + // if (formData.theme === 'light') { + // windsurfLogo.style.filter = 'invert(1)'; + // } else { + // windsurfLogo.style.filter = 'unset'; + // } if (!init) { deps.changeSettings(formData); diff --git a/src/livecodes/config/config.ts b/src/livecodes/config/config.ts index 5f4b76553..0e7ab8671 100644 --- a/src/livecodes/config/config.ts +++ b/src/livecodes/config/config.ts @@ -82,7 +82,7 @@ export const getEditorConfig = (config: Config | UserConfig): EditorConfig => closeBrackets: config.closeBrackets, foldRegions: config.foldRegions, emmet: config.emmet, - enableAI: config.enableAI, + // enableAI: config.enableAI, editorMode: config.editorMode, }); diff --git a/src/livecodes/config/default-config.ts b/src/livecodes/config/default-config.ts index b14a80539..196d6028b 100644 --- a/src/livecodes/config/default-config.ts +++ b/src/livecodes/config/default-config.ts @@ -67,7 +67,7 @@ export const defaultConfig: Config = { singleQuote: false, trailingComma: true, emmet: true, - enableAI: false, + // enableAI: false, editorMode: undefined, version: process.env.VERSION as string, }; diff --git a/src/livecodes/config/validate-config.ts b/src/livecodes/config/validate-config.ts index 33bf2d9b3..0e5cbe238 100644 --- a/src/livecodes/config/validate-config.ts +++ b/src/livecodes/config/validate-config.ts @@ -180,7 +180,7 @@ export const validateConfig = (config: Partial): Partial => { ...(is(config.singleQuote, 'boolean') ? { singleQuote: config.singleQuote } : {}), ...(is(config.trailingComma, 'boolean') ? { trailingComma: config.trailingComma } : {}), ...(is(config.emmet, 'boolean') ? { emmet: config.emmet } : {}), - ...(is(config.enableAI, 'boolean') ? { enableAI: config.enableAI } : {}), + // ...(is(config.enableAI, 'boolean') ? { enableAI: config.enableAI } : {}), ...(includes(editorModes, config.editorMode) ? { editorMode: config.editorMode } : {}), ...(is(config.imports, 'object') ? { imports: config.imports } : {}), ...(is(config.types, 'object') ? { types: config.types } : {}), diff --git a/src/livecodes/core.ts b/src/livecodes/core.ts index 0c0796f24..73d175a63 100644 --- a/src/livecodes/core.ts +++ b/src/livecodes/core.ts @@ -4042,7 +4042,8 @@ const handleEmbed = () => { const changeEditorSettings = (newConfig: Partial | null) => { if (!newConfig) return; - const shouldReload = newConfig.editor != null && newConfig.editor !== getConfig().editor; + const shouldReload = + newConfig.editor !== getConfig().editor && !((newConfig.editor || '') in getActiveEditor()); setUserConfig(newConfig); const updatedConfig = getConfig(); diff --git a/src/livecodes/editor/codemirror/codemirror.ts b/src/livecodes/editor/codemirror/codemirror.ts index 199efa8e0..9d48d8a80 100644 --- a/src/livecodes/editor/codemirror/codemirror.ts +++ b/src/livecodes/editor/codemirror/codemirror.ts @@ -47,10 +47,10 @@ import { getEditorTheme } from '../themes'; import { codemirrorThemes, customThemes } from './codemirror-themes'; import { editorLanguages } from './editor-languages'; -export type CodeiumEditor = Pick & { - editorId: EditorOptions['editorId']; -}; -const editors: CodeiumEditor[] = []; +// export type CodeiumEditor = Pick & { +// editorId: EditorOptions['editorId']; +// }; +// const editors: CodeiumEditor[] = []; let tsWorker: any; let tabFocusMode = false; const changeTabFocusMode = debounce(() => (tabFocusMode = !tabFocusMode), 50); @@ -109,9 +109,9 @@ export const createEditor = async (options: EditorOptions): Promise let vim: (() => Extension) | undefined; let emacs: (() => Extension) | undefined; let emmet: Extension | undefined; - let codeium: - | ((editors: CodeiumEditor[], mapLanguage: (lang: Language) => Language) => Extension) - | undefined; + // let codeium: + // | ((editors: CodeiumEditor[], mapLanguage: (lang: Language) => Language) => Extension) + // | undefined; let lineNumbersRelative: () => Extension; const configureTSExtension = (extensionList: readonly Extension[]) => { @@ -181,20 +181,21 @@ export const createEditor = async (options: EditorOptions): Promise vim: `${codeMirrorBaseUrl}codemirror-vim.js`, emacs: `${codeMirrorBaseUrl}codemirror-emacs.js`, emmet: `${codeMirrorBaseUrl}codemirror-emmet.js`, - codeium: `${codeMirrorBaseUrl}codemirror-codeium.js`, + // codeium: `${codeMirrorBaseUrl}codemirror-codeium.js`, lineNumbersRelative: `${codeMirrorBaseUrl}codemirror-line-numbers-relative.js`, }; - const [vimMod, emacsMod, emmetMod, codeiumMod, lineNumbersRelativeMod] = await Promise.all([ - opt.editorMode === 'vim' ? import(modules.vim) : Promise.resolve({}), - opt.editorMode === 'emacs' ? import(modules.emacs) : Promise.resolve({}), - opt.emmet ? import(modules.emmet) : Promise.resolve({}), - opt.enableAI ? import(modules.codeium) : Promise.resolve({}), - opt.lineNumbers === 'relative' ? import(modules.lineNumbersRelative) : Promise.resolve({}), - ]); + const [vimMod, emacsMod, emmetMod, /* codeiumMod, */ lineNumbersRelativeMod] = + await Promise.all([ + opt.editorMode === 'vim' ? import(modules.vim) : Promise.resolve({}), + opt.editorMode === 'emacs' ? import(modules.emacs) : Promise.resolve({}), + opt.emmet ? import(modules.emmet) : Promise.resolve({}), + // opt.enableAI ? import(modules.codeium) : Promise.resolve({}), + opt.lineNumbers === 'relative' ? import(modules.lineNumbersRelative) : Promise.resolve({}), + ]); vim = vimMod.vim; emacs = emacsMod.emacs; emmet = emmetMod.emmet; - codeium = codeiumMod.codeium; + // codeium = codeiumMod.codeium; lineNumbersRelative = lineNumbersRelativeMod.lineNumbersRelative; }; await loadExtensions(options); @@ -217,7 +218,7 @@ export const createEditor = async (options: EditorOptions): Promise const wordWrap = settings.wordWrap ?? editorSettings.wordWrap; const enableEmmet = settings.emmet ?? editorSettings.emmet; const enableLineNumbers = settings.lineNumbers ?? editorSettings.lineNumbers; - const enableAI = settings.enableAI ?? editorSettings.enableAI; + // const enableAI = settings.enableAI ?? editorSettings.enableAI; const editorMode = settings.editorMode ?? editorSettings.editorMode; return [ @@ -231,7 +232,7 @@ export const createEditor = async (options: EditorOptions): Promise : enableLineNumbers && lineNumbers ? [lineNumbers()] : []), - ...(enableAI && codeium ? [codeium(editors, mapLanguage)] : []), + // ...(enableAI && codeium ? [codeium(editors, mapLanguage)] : []), EditorView.theme({ '&': { height: '100%', @@ -341,8 +342,8 @@ export const createEditor = async (options: EditorOptions): Promise } }; - const codeiumEditor: CodeiumEditor = { editorId, getLanguage, getValue }; - editors.push(codeiumEditor); + // const codeiumEditor: CodeiumEditor = { editorId, getLanguage, getValue }; + // editors.push(codeiumEditor); loadTS().then(() => { tsResolve(); }); @@ -517,7 +518,7 @@ export const createEditor = async (options: EditorOptions): Promise keyBindings.length = 0; view.destroy(); container.innerHTML = ''; - editors.splice(editors.indexOf(codeiumEditor), 1); + // editors.splice(editors.indexOf(codeiumEditor), 1); removeEventListener('keydown', toggleTabFocusMode); }; diff --git a/src/livecodes/editor/monaco/monaco.ts b/src/livecodes/editor/monaco/monaco.ts index 20a4e3124..13a244c09 100644 --- a/src/livecodes/editor/monaco/monaco.ts +++ b/src/livecodes/editor/monaco/monaco.ts @@ -19,7 +19,7 @@ import type { import { pkgInfoService } from '../../services/pkgInfo'; import { cloneObject, getRandomString, loadScript } from '../../utils/utils'; import { - codeiumProviderUrl, + // codeiumProviderUrl, emmetMonacoUrl, monacoBaseUrl, monacoEmacsUrl, @@ -38,8 +38,7 @@ let monacoGloballyLoaded = false; const disposeEmmet: { html?: any; css?: any; jsx?: any; disabled?: boolean } = {}; let monaco: typeof Monaco; const loadedThemes = new Set(); -let codeiumProvider: { dispose: () => void } | undefined; -// track editors for providing context for AI +// let codeiumProvider: { dispose: () => void } | undefined; let editors: Monaco.editor.IStandaloneCodeEditor[] = []; let tailwindcssConfig: any; let vueRegistered = false; @@ -647,7 +646,7 @@ export const createEditor = async (options: EditorOptions): Promise configureEditorMode(settings.editorMode); editor.updateOptions(editorOptions); setTheme(settings.theme, settings.editorTheme); - configureCodeium(settings.enableAI); + // configureCodeium(settings.enableAI); }; const undo = () => { @@ -698,27 +697,27 @@ export const createEditor = async (options: EditorOptions): Promise } }; - const configureCodeium = (enabled: boolean) => { - if (!enabled) { - codeiumProvider?.dispose(); - codeiumProvider = undefined; - return; - } + // const configureCodeium = (enabled: boolean) => { + // if (!enabled) { + // codeiumProvider?.dispose(); + // codeiumProvider = undefined; + // return; + // } - // already loaded or loading - if (codeiumProvider) { - return; - } + // // already loaded or loading + // if (codeiumProvider) { + // return; + // } - // avoid race condition between different editors - codeiumProvider = { dispose: () => 'loading...' }; + // // avoid race condition between different editors + // codeiumProvider = { dispose: () => 'loading...' }; - import(codeiumProviderUrl).then((codeiumModule) => { - codeiumProvider = codeiumModule.registerCodeiumProvider(monaco, { - getEditors: () => editors, - }); - }); - }; + // import(codeiumProviderUrl).then((codeiumModule) => { + // codeiumProvider = codeiumModule.registerCodeiumProvider(monaco, { + // getEditors: () => editors, + // }); + // }); + // }; const destroy = () => { editors = editors.filter((e) => e !== editor); diff --git a/src/livecodes/i18n/locales/en/translation.lokalise.json b/src/livecodes/i18n/locales/en/translation.lokalise.json index 291d0d403..5608ba23b 100644 --- a/src/livecodes/i18n/locales/en/translation.lokalise.json +++ b/src/livecodes/i18n/locales/en/translation.lokalise.json @@ -684,10 +684,6 @@ "notes": "", "translation": "Copy Code as Data URL" }, - "commandMenu.disableAI": { - "notes": "", - "translation": "Disable AI Code Assistant" - }, "commandMenu.disableAutoSave": { "notes": "", "translation": "Disable Auto Save" @@ -712,10 +708,6 @@ "notes": "", "translation": "Disable Vim Mode" }, - "commandMenu.enableAI": { - "notes": "", - "translation": "Enable AI Code Assistant" - }, "commandMenu.enableAutoSave": { "notes": "", "translation": "Enable Auto Save" @@ -1256,14 +1248,6 @@ "notes": "", "translation": "Enable Emmet *" }, - "editorSettings.enableAI.heading": { - "notes": "", - "translation": "Enable AI Code Assistant" - }, - "editorSettings.enableAI.note": { - "notes": "### ###\n\n\n### ###\n\"Windsurf\"\n\n", - "translation": "Powered by " - }, "editorSettings.foldRegions": { "notes": "", "translation": "Fold (collapse) regions *" diff --git a/src/livecodes/i18n/locales/en/translation.ts b/src/livecodes/i18n/locales/en/translation.ts index 7fed192d4..cdf8d0ec8 100644 --- a/src/livecodes/i18n/locales/en/translation.ts +++ b/src/livecodes/i18n/locales/en/translation.ts @@ -303,14 +303,12 @@ const translation = { contribute: 'Contribute', copy: 'Copy Code', copyAsDataUrl: 'Copy Code as Data URL', - disableAI: 'Disable AI Code Assistant', disableAutoSave: 'Disable Auto Save', disableAutoUpdate: 'Disable Auto Update', disableEmacs: 'Disable Emacs Mode', disableFormatOnSave: 'Disable Format On-Save', disableRecoverUnsaved: 'Disable Recover Unsaved', disableVim: 'Disable Vim Mode', - enableAI: 'Enable AI Code Assistant', enableAutoSave: 'Enable Auto Save', enableAutoUpdate: 'Enable Auto Update', enableEmacs: 'Enable Emacs Mode', @@ -506,10 +504,6 @@ const translation = { }, editorTheme: 'Editor Theme', emmet: 'Enable Emmet *', - enableAI: { - heading: 'Enable AI Code Assistant', - note: 'Powered by <1><2>', - }, foldRegions: 'Fold (collapse) regions *', fontFamily: 'Font Family', fontSize: 'Font Size', diff --git a/src/livecodes/styles/inc-modal.scss b/src/livecodes/styles/inc-modal.scss index 7f9b6b3a8..92b2b9650 100644 --- a/src/livecodes/styles/inc-modal.scss +++ b/src/livecodes/styles/inc-modal.scss @@ -1305,8 +1305,8 @@ #editor-settings-preview-container { height: 250px !important; - margin-bottom: 1rem; - max-height: 250px; + margin-bottom: 1rem !important; + max-height: 250px !important; } .field-note { diff --git a/src/sdk/models.ts b/src/sdk/models.ts index 88042a680..7195f0f6d 100644 --- a/src/sdk/models.ts +++ b/src/sdk/models.ts @@ -811,11 +811,11 @@ export interface EditorConfig { */ editorMode: 'vim' | 'emacs' | undefined; - /** - * If `true`, [AI code assistant](https://livecodes.io/docs/features/ai) is enabled. - * @default false - */ - enableAI: boolean; + // /** + // * If `true`, [AI code assistant](https://livecodes.io/docs/features/ai) is enabled. + // * @default false + // */ + // enableAI: boolean; } export interface FormatterConfig {