Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
181 changes: 179 additions & 2 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,80 @@ let package = Package(
.macOS(.v13)
],
products: [
.executable(name: "Lithe", targets: ["Lithe"])
.executable(name: "Lithe", targets: ["Lithe"]),
.library(name: "LitheModuleAPI", targets: ["LitheModuleAPI"]),
.library(name: "LitheApplicationKernel", targets: ["LitheApplicationKernel"]),
.library(name: "LitheCoreContracts", targets: ["LitheCoreContracts"]),
.library(name: "LitheGitModule", targets: ["LitheGitModule"]),
.library(name: "LitheSearchModule", targets: ["LitheSearchModule"]),
.library(name: "LitheLocalHistoryModule", targets: ["LitheLocalHistoryModule"]),
.library(name: "LitheTerminalModule", targets: ["LitheTerminalModule"]),
.library(name: "LitheDatabaseModule", targets: ["LitheDatabaseModule"]),
.library(name: "LitheAIAssistanceModule", targets: ["LitheAIAssistanceModule"]),
.library(name: "LitheExecutionModule", targets: ["LitheExecutionModule"]),
.library(name: "LitheDebugModule", targets: ["LitheDebugModule"]),
.library(name: "LitheLanguageIntelligenceModule", targets: ["LitheLanguageIntelligenceModule"]),
.library(name: "LitheWorkspaceModule", targets: ["LitheWorkspaceModule"]),
.library(name: "LitheGoSupportModule", targets: ["LitheGoSupportModule"]),
.executable(name: "LitheCoreVerifier", targets: ["LitheCoreVerifier"]),
.executable(name: "LitheGitGraphVerifier", targets: ["LitheGitGraphVerifier"]),
.executable(name: "LitheOfficialPluginVerifier", targets: ["LitheOfficialPluginVerifier"])
],
dependencies: [
.package(url: "https://github.com/migueldeicaza/SwiftTerm.git", exact: "1.15.0")
],
targets: [
.target(
name: "LitheModuleAPI",
path: "Sources/LitheModuleAPI",
swiftSettings: [
.swiftLanguageMode(.v6)
]
),
.target(
name: "LitheApplicationKernel",
dependencies: ["LitheModuleAPI"],
path: "Sources/LitheApplicationKernel",
swiftSettings: [
.swiftLanguageMode(.v6)
]
),
.target(
name: "LitheCoreContracts",
dependencies: ["LitheModuleAPI"],
path: "Sources/LitheCoreContracts",
swiftSettings: [
.swiftLanguageMode(.v6)
]
),
.target(
name: "LitheGitModule",
dependencies: ["LitheModuleAPI", "LitheCoreContracts"],
path: "Sources/LitheGitModule",
swiftSettings: [
.swiftLanguageMode(.v6)
]
),
.target(
name: "LitheSearchModule",
dependencies: ["LitheModuleAPI", "LitheCoreContracts"],
path: "Sources/LitheSearchModule",
swiftSettings: [.swiftLanguageMode(.v6)]
),
.target(
name: "LitheLocalHistoryModule",
dependencies: ["LitheModuleAPI", "LitheCoreContracts"],
path: "Sources/LitheLocalHistoryModule",
swiftSettings: [.swiftLanguageMode(.v6)]
),
.target(name: "LitheTerminalModule", dependencies: ["LitheModuleAPI", "LitheCoreContracts"], path: "Sources/LitheTerminalModule", swiftSettings: [.swiftLanguageMode(.v6)]),
.target(name: "LitheDatabaseModule", dependencies: ["LitheModuleAPI", "LitheCoreContracts"], path: "Sources/LitheDatabaseModule", swiftSettings: [.swiftLanguageMode(.v6)]),
.target(name: "LitheAIAssistanceModule", dependencies: ["LitheModuleAPI", "LitheCoreContracts"], path: "Sources/LitheAIAssistanceModule", swiftSettings: [.swiftLanguageMode(.v6)]),
.target(name: "LitheExecutionModule", dependencies: ["LitheModuleAPI", "LitheCoreContracts"], path: "Sources/LitheExecutionModule", swiftSettings: [.swiftLanguageMode(.v6)]),
.target(name: "LitheDebugModule", dependencies: ["LitheModuleAPI", "LitheCoreContracts"], path: "Sources/LitheDebugModule", swiftSettings: [.swiftLanguageMode(.v6)]),
.target(name: "LitheLanguageIntelligenceModule", dependencies: ["LitheModuleAPI", "LitheCoreContracts"], path: "Sources/LitheLanguageIntelligenceModule", swiftSettings: [.swiftLanguageMode(.v6)]),
.target(name: "LitheWorkspaceModule", dependencies: ["LitheModuleAPI", "LitheCoreContracts"], path: "Sources/LitheWorkspaceModule", swiftSettings: [.swiftLanguageMode(.v6)]),
.target(name: "LitheGoSupportModule", dependencies: ["LitheModuleAPI", "LitheCoreContracts"], path: "Sources/LitheGoSupportModule", swiftSettings: [.swiftLanguageMode(.v6)]),
.target(
name: "LitheRustCore",
path: "Sources/LitheRustCore",
Expand All @@ -22,6 +90,19 @@ let package = Package(
.executableTarget(
name: "Lithe",
dependencies: [
"LitheModuleAPI",
"LitheApplicationKernel",
"LitheCoreContracts",
"LitheGitModule",
"LitheSearchModule",
"LitheLocalHistoryModule",
"LitheTerminalModule",
"LitheDatabaseModule",
"LitheAIAssistanceModule",
"LitheExecutionModule",
"LitheDebugModule",
"LitheLanguageIntelligenceModule",
"LitheWorkspaceModule",
"LitheRustCore",
.product(name: "SwiftTerm", package: "SwiftTerm")
],
Expand All @@ -35,11 +116,107 @@ let package = Package(
),
.testTarget(
name: "LitheTests",
dependencies: ["Lithe"],
dependencies: ["Lithe", "LitheModuleAPI", "LitheApplicationKernel", "LitheCoreContracts", "LitheGitModule", "LitheDatabaseModule", "LitheAIAssistanceModule", "LitheLanguageIntelligenceModule", "LitheGoSupportModule"],
path: "Tests/LitheTests",
swiftSettings: [
.swiftLanguageMode(.v6)
]
),
.testTarget(
name: "LitheApplicationKernelTests",
dependencies: ["LitheModuleAPI", "LitheApplicationKernel"],
path: "Tests/LitheApplicationKernelTests",
swiftSettings: [
.swiftLanguageMode(.v6)
]
),
.testTarget(
name: "LitheTerminalModuleTests",
dependencies: ["LitheTerminalModule"],
path: "Tests/LitheTerminalModuleTests",
swiftSettings: [.swiftLanguageMode(.v6)]
),
.testTarget(
name: "LitheAIAssistanceModuleTests",
dependencies: ["LitheAIAssistanceModule", "LitheApplicationKernel", "LitheCoreContracts"],
path: "Tests/LitheAIAssistanceModuleTests",
swiftSettings: [.swiftLanguageMode(.v6)]
),
.testTarget(
name: "LitheSearchModuleTests",
dependencies: ["LitheSearchModule", "LitheApplicationKernel"],
path: "Tests/LitheSearchModuleTests",
swiftSettings: [.swiftLanguageMode(.v6)]
),
.testTarget(
name: "LitheLocalHistoryModuleTests",
dependencies: ["LitheLocalHistoryModule", "LitheApplicationKernel"],
path: "Tests/LitheLocalHistoryModuleTests",
swiftSettings: [.swiftLanguageMode(.v6)]
),
.testTarget(
name: "LitheGitModuleTests",
dependencies: ["LitheGitModule", "LitheApplicationKernel"],
path: "Tests/LitheGitModuleTests",
swiftSettings: [.swiftLanguageMode(.v6)]
),
.testTarget(
name: "LitheDatabaseModuleTests",
dependencies: ["LitheDatabaseModule", "LitheApplicationKernel"],
path: "Tests/LitheDatabaseModuleTests",
swiftSettings: [.swiftLanguageMode(.v6)]
),
.testTarget(
name: "LitheLanguageIntelligenceModuleTests",
dependencies: ["LitheLanguageIntelligenceModule", "LitheApplicationKernel", "LitheCoreContracts"],
path: "Tests/LitheLanguageIntelligenceModuleTests",
swiftSettings: [.swiftLanguageMode(.v6)]
),
.testTarget(
name: "LitheDebugModuleTests",
dependencies: ["LitheDebugModule", "LitheApplicationKernel"],
path: "Tests/LitheDebugModuleTests",
swiftSettings: [.swiftLanguageMode(.v6)]
),
.testTarget(
name: "LitheExecutionModuleTests",
dependencies: ["LitheExecutionModule", "LitheApplicationKernel", "LitheCoreContracts"],
path: "Tests/LitheExecutionModuleTests",
swiftSettings: [.swiftLanguageMode(.v6)]
),
.testTarget(
name: "LitheWorkspaceModuleTests",
dependencies: ["LitheWorkspaceModule", "LitheApplicationKernel"],
path: "Tests/LitheWorkspaceModuleTests",
swiftSettings: [.swiftLanguageMode(.v6)]
),
.testTarget(
name: "LitheGoSupportModuleTests",
dependencies: [
"LitheGoSupportModule",
"LitheApplicationKernel",
"LitheLanguageIntelligenceModule"
],
path: "Tests/LitheGoSupportModuleTests",
swiftSettings: [.swiftLanguageMode(.v6)]
),
.executableTarget(
name: "LitheCoreVerifier",
dependencies: ["LitheCoreContracts", "LitheGitModule", "LitheSearchModule"],
path: "Tests/LitheCoreVerifier",
swiftSettings: [.swiftLanguageMode(.v6)]
),
.executableTarget(
name: "LitheGitGraphVerifier",
dependencies: ["LitheGitModule"],
path: "Tests/LitheGitGraphVerifier",
swiftSettings: [.swiftLanguageMode(.v6)]
),
.executableTarget(
name: "LitheOfficialPluginVerifier",
dependencies: ["LitheModuleAPI", "LitheApplicationKernel", "LitheCoreContracts"],
path: "Tests/LitheOfficialPluginVerifier",
swiftSettings: [.swiftLanguageMode(.v6)]
)
]
)
24 changes: 24 additions & 0 deletions Plugins/Official/GoSupport/Info.plist
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>LitheGoSupportPlugin</string>
<key>CFBundleIdentifier</key>
<string>dev.lithe.plugin.go-support.bundle</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Go Support</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>0.3.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>NSPrincipalClass</key>
<string>LitheGoSupportPluginEntrypoint</string>
</dict>
</plist>
71 changes: 71 additions & 0 deletions Plugins/Official/GoSupport/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
{
"schemaVersion": 1,
"id": "dev.lithe.plugin.go-support",
"displayName": "Go Support",
"version": "0.3.0",
"apiVersion": 1,
"hostCompatibility": {
"minimum": "0.3.0",
"maximumExclusive": "0.4.0"
},
"vendor": {
"id": "dev.lithe",
"displayName": "Lithe",
"signatureRequirement": "sameTeamAsHost"
},
"entrypoint": {
"kind": "nativeBundle",
"bundleIdentifier": "dev.lithe.plugin.go-support.bundle",
"principalClass": "LitheGoSupportPluginEntrypoint",
"bundlePath": "GoSupport.bundle"
},
"modules": [
{
"id": "dev.lithe.language.go.execution",
"displayName": "Go Execution",
"scope": "workspace",
"defaultState": "enabled",
"activationPolicy": "onDemand",
"sleepPolicy": {
"kind": "whenIdle",
"afterSeconds": 600
},
"moduleDependencies": ["dev.lithe.workspace"],
"capabilityDependencies": [],
"providedCapabilities": [
"dev.lithe.capability.language.go.execution",
"dev.lithe.capability.language.go.testing"
],
"contributions": [],
"required": false
},
{
"id": "dev.lithe.language.go.language-server",
"displayName": "Go Language Server",
"scope": "workspace",
"defaultState": "enabled",
"activationPolicy": "onDemand",
"sleepPolicy": {
"kind": "whenIdle",
"afterSeconds": 600
},
"moduleDependencies": ["dev.lithe.workspace"],
"capabilityDependencies": [],
"providedCapabilities": ["dev.lithe.capability.language.go.language-server"],
"contributions": [],
"required": false
}
],
"languageSupports": [
{
"id": "go",
"displayName": "Go",
"fileExtensions": ["go"],
"fileNames": [],
"projectFileNames": ["go.mod", "go.work"],
"languageServerModuleID": "dev.lithe.language.go.language-server",
"executionModuleID": "dev.lithe.language.go.execution",
"testingModuleID": "dev.lithe.language.go.execution"
}
]
}
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@

<h1>Lithe</h1>

<p><strong>A cross-platform IDE for AI-assisted development</strong></p>
<p>Familiar development workflows · multi-language project support · a focused resource footprint</p>
<p><strong>A lightweight IDE for the AI era</strong></p>
<p>Start tools on demand · keep the workspace responsive · stay focused on the code</p>
<p><em>AI writes the code. Lithe helps you understand it, run it, and review it.</em></p>

<p>
Expand Down Expand Up @@ -45,11 +45,11 @@

## About Lithe

Lithe is a high-performance, general-purpose IDE for AI-assisted development. It brings project browsing, editing, search, code navigation, Git, run, and debug workflows together for multi-language and multi-type projects, while starting language servers, terminals, build tools, and debug processes only when needed.
Lithe is a lightweight, general-purpose IDE built for the AI era. It brings project browsing, editing, search, code navigation, Git, run, and debug workflows together for multi-language and multi-type projects, while starting language servers, terminals, build tools, and debug processes only when needed.

When an external AI tool changes a project, Lithe helps you locate the affected code, run the project, review the diff, and decide which changes to stage, undo, or commit.

> **A high-performance general-purpose IDE for modern development.**
> **A lightweight IDE that starts what you need, when you need it.**

## Core features

Expand Down
8 changes: 4 additions & 4 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@

<h1>Lithe</h1>

<p><strong>一款面向 AI 辅助开发的跨平台 IDE</strong></p>
<p>熟悉的开发工作流 · 支持多语言与多类型项目 · 更专注的资源占用</p>
<p><strong>一款面向 AI 时代的轻量 IDE</strong></p>
<p>工具按需启动 · 工作区保持流畅 · 让注意力回到代码</p>
<p><em>AI 负责编写代码,Lithe 负责帮你看懂、跑通并审查修改。</em></p>

<p>
Expand Down Expand Up @@ -45,11 +45,11 @@

## 项目简介

Lithe 是一款面向 AI 辅助开发、追求极致性能的通用型 IDE。它面向多语言和多类型项目,整合项目浏览、编辑、搜索、代码导航、Git、运行和调试工作流,并让语言服务器、终端、构建工具和调试进程只在需要时启动。
Lithe 是一款面向 AI 时代打造的轻量通用型 IDE。它面向多语言和多类型项目,整合项目浏览、编辑、搜索、代码导航、Git、运行和调试工作流,并让语言服务器、终端、构建工具和调试进程只在需要时启动。

当外部 AI 工具修改项目后,你可以用 Lithe 定位受影响的代码、运行项目、审查 Diff,并决定暂存、撤销或提交哪些修改。

> **一款面向现代开发的极致性能通用型 IDE。**
> **需要什么就启动什么,让 IDE 始终保持轻量。**

## 核心功能

Expand Down
Loading
Loading