mirror of
https://github.com/l0ng-ai/openidea.git
synced 2026-11-07 00:07:29 +00:00
SSH (new crate ide-ssh)
- Shared SSH configurations (Settings › Tools › SSH Configurations) used by
data source tunnels, deployment servers, run targets and terminals.
- Sessions with password, key pair or OpenSSH config + agent authentication,
ProxyJump, known-hosts checks with trust prompts, saved secrets.
- Askpass: credential prompts of `ssh` / `git` child processes shown in the IDE.
- Tools › Start SSH Session opens a terminal tab for a configuration.
- The database SSH tunnel moves here and can use a shared configuration.
Deployment (new crate ide-remote)
- Settings › Build › Deployment: SFTP servers, path mappings, excludes,
automatic upload on save.
- Upload / download / delete / sync with the server, Tools › Deployment
menu, Remote Host tool window for browsing and editing remote files.
Run targets
- Settings › Build › Run Targets: run configurations can run on an SSH host
("Run on"), with project sync before the run and remote interpreters.
Remote development
- New crate ide-host: the backend (projects, documents, LSP, VCS, search,
terminals, runs, debugger, tools, settings) shared by the desktop shell and
`openidea-server`, a headless server speaking JSON-RPC over stdio.
- File › Remote Development… connects to an SSH host, installs the server
(per-build folder, streamed gzip upload; the release build is downloaded
when there is none locally) and opens a remote folder in the window.
- The window routes the commands the server answers to it; streaming
channels and events are forwarded. The server takes the login shell's PATH.
38 lines
1.2 KiB
TypeScript
38 lines
1.2 KiB
TypeScript
/// <reference types="vitest/config" />
|
|
import { defineConfig } from "vite";
|
|
import react from "@vitejs/plugin-react";
|
|
import { fileURLToPath } from "node:url";
|
|
import process from "node:process";
|
|
|
|
const host = process.env.TAURI_DEV_HOST;
|
|
|
|
export default defineConfig(() => ({
|
|
plugins: [react()],
|
|
resolve: {
|
|
alias: [
|
|
{ find: "@", replacement: fileURLToPath(new URL("./src", import.meta.url)) },
|
|
// `invoke` with remote-development routing (src/platform/tauriCore.ts).
|
|
{ find: /^@tauri-apps\/api\/core$/, replacement: fileURLToPath(new URL("./src/platform/tauriCore.ts", import.meta.url)) },
|
|
],
|
|
},
|
|
// Tauri: keep Rust errors visible, fixed port, don't watch the backend.
|
|
clearScreen: false,
|
|
server: {
|
|
port: 1420,
|
|
strictPort: true,
|
|
host: host || false,
|
|
hmr: host ? { protocol: "ws", host, port: 1421 } : undefined,
|
|
watch: { ignored: ["**/src-tauri/**", "**/crates/**", "**/target/**"] },
|
|
},
|
|
build: {
|
|
target: "safari16",
|
|
sourcemap: true,
|
|
},
|
|
test: {
|
|
environment: "jsdom",
|
|
globals: false,
|
|
setupFiles: ["./src/test/setup.ts"],
|
|
include: ["src/**/*.test.{ts,tsx}", "perf/**/*.test.ts", "scripts/**/*.test.ts"],
|
|
},
|
|
}));
|