https://github.com/meesudzu/jx2-devstudio
JX2 DevStudio – IDE chuyên dụng cho phát triển server game JX2 (Kingsoft Jianxia 2) Hỗ trợ đa mã hóa cho file Trung Quốc (GB18030) & Việt Nam (Windows-1252).
https://github.com/meesudzu/jx2-devstudio
electron game-dev-tools gb18030 jx2-development kingsoft-engine lua-editor windows-1252
Last synced: 3 months ago
JSON representation
JX2 DevStudio – IDE chuyên dụng cho phát triển server game JX2 (Kingsoft Jianxia 2) Hỗ trợ đa mã hóa cho file Trung Quốc (GB18030) & Việt Nam (Windows-1252).
- Host: GitHub
- URL: https://github.com/meesudzu/jx2-devstudio
- Owner: meesudzu
- Created: 2026-03-01T12:07:19.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-03-08T05:09:04.000Z (3 months ago)
- Last Synced: 2026-03-08T09:13:17.677Z (3 months ago)
- Topics: electron, game-dev-tools, gb18030, jx2-development, kingsoft-engine, lua-editor, windows-1252
- Language: TypeScript
- Homepage:
- Size: 31.5 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
⚔️ JX2 DevStudio
IDE chuyên dụng cho phát triển server game JX2 (Kingsoft Jianxia 2)
Hỗ trợ đa mã hóa cho file Trung Quốc (GB18030) & Việt Nam (Windows-1252).
---
## 📸 Ảnh chụp màn hình

Màn hình chào mừng — Trang khởi động với các phím tắt nhanh

Trình soạn thảo Lua — Tô sáng cú pháp với hỗ trợ mã hóa GB18030 & Windows-1252

Chế độ bảng — Xem file TSV dạng bảng tính với text tiếng Việt (Windows-1252)

Chế độ văn bản — Dữ liệu phân cách bằng tab với hiển thị đúng mã hóa

Trình duyệt file — Duyệt dự án với tên thư mục & file tiếng Trung (GB18030)
---
## 🎯 Tại sao cần JX2 DevStudio?
Server game JX2 sử dụng **mã hóa cũ** mà các trình soạn thảo thông thường xử lý sai:
| Loại file | Mã hóa | Nội dung |
|-----------|--------|----------|
| Script `.lua` | **GB18030** và **Windows-1252** | Comment tiếng Trung, tên biến, hội thoại NPC |
| Config `.txt` | **GB18030** và **Windows-1252** | Tên vật phẩm tiếng Việt, mô tả kỹ năng |
| Tên file | **GB18030** | Ký tự tiếng Trung trong tên thư mục/file |
Các IDE thông dụng (VS Code, Sublime) sẽ làm hỏng các file này hoặc không thể tìm kiếm xuyên mã hóa. **JX2 DevStudio giải quyết vấn đề này.**
## ✨ Tính năng
### 🔤 Engine Đa Mã Hóa (Lõi)
- **Nút chuyển đổi** — Nhấn thanh trạng thái để chuyển giữa GB18030 / Windows-1252 / UTF-8
- **Tái hiểu byte không mất dữ liệu** — Giải mã lại byte gốc mà không làm hỏng (không bao giờ tự chuyển sang UTF-8)
- **Nhận diện thông minh** — Tự phát hiện mã hóa bằng phương pháp phân tích byte + gợi ý phần mở rộng file
- **Tên file GB18030** — Trình duyệt file hiển thị đúng tên file mã hóa tiếng Trung
### 🔍 Tìm kiếm xuyên mã hóa
- Tìm kiếm chuỗi đồng thời trên **cả ba mã hóa**
- So khớp ở mức byte — tìm "Trang Bị" và tìm thấy trong file Windows-1252
- **Regex search** — Hỗ trợ biểu thức chính quy chuẩn xác
- **Tìm & thay thế toàn dự án** — Replace All trên phạm vi toàn bộ project
- **Bộ lọc** — Lọc theo file extension, thư mục include/exclude
- **Nhóm theo file** — Kết quả nhóm theo file với collapsible sections
- Kết quả hiển thị mã hóa nào khớp, kèm file/dòng/ngữ cảnh
### 📝 Trình soạn thảo
- **Monaco Editor** (engine của VS Code) với giao diện tối tùy chỉnh
- **Tô sáng cú pháp Lua** — Tokenizer Monarch đầy đủ cho từ khóa, chuỗi, comment Lua
- **Xem config dạng bảng** — Bảng tính AG Grid cho file TSV .txt với thêm/xóa hàng, kéo thả sắp xếp thứ tự
- Chuyển đổi giữa chế độ văn bản và chế độ bảng
- **Xem thay đổi (Diff View)** — So sánh nội dung gốc vs hiện tại bằng Monaco DiffEditor
- **Split-Screen Editor** — Chia editor thành 2 panel cạnh nhau để làm việc đồng thời
### 📂 Tích hợp Git
- **Git Panel** (Ctrl+Shift+G) — Xem trạng thái, stage/unstage file, commit (Ctrl+Enter), push, pull
- **Quản lý nhánh** — Chuyển nhánh, xem lịch sử commit
- **Hỗ trợ GB18030** — Decode path tiếng Trung bằng iconv-lite, stage/unstage từng file qua `--pathspec-from-file`
### 📋 Theo dõi Log
- Console theo dõi thời gian thực cho log server JX2
- Tab cho **Game Server**, **S3 Relay**, **Gateway**
- Mức log có màu sắc (error/warn/info)
- Lọc text và tự cuộn
## 🚀 Bắt đầu
### Yêu cầu trước
- **Node.js 20+** (cài qua [nvm](https://github.com/nvm-sh/nvm))
- **Git**
#### Gói cần thiết cho Linux / WSL
Electron cần các thư viện hệ thống sau. Cài đặt trước:
```bash
sudo apt-get update && sudo apt-get install -y \
libnss3 libnspr4 libatk1.0-0 libatk-bridge2.0-0 \
libcups2 libdrm2 libgtk-3-0 libgbm1 libasound2 \
libxshmfence1 libx11-xcb1 libxcomposite1 libxdamage1 \
libxrandr2 libpango-1.0-0 libcairo2
```
> **Lưu ý WSL:** Bạn cũng cần một display server cho GUI. **Windows 11** có WSLg tích hợp sẵn (hoạt động tự động). Trên **Windows 10**, cài [VcXsrv](https://sourceforge.net/projects/vcxsrv/) và chạy `export DISPLAY=:0` trước khi khởi động ứng dụng.
### Cài đặt & Chạy
```bash
# Clone
git clone git@github.com:meesudzu/jx2-ide.git
cd jx2-ide
# Cài dependencies
npm install
# Khởi chạy chế độ phát triển
npm run dev
```
Lệnh này mở IDE Electron. Nhấn **Mở Thư Mục** → chọn thư mục server JX2 của bạn.
### Build bản Production
```bash
# Build cho nền tảng hiện tại
npm run build:current
# Build cho nền tảng cụ thể
npm run build:win # Windows (.exe)
npm run build:mac # macOS (.dmg)
npm run build:linux # Linux (.AppImage)
```
File binary xuất ra thư mục `release/`.
## 🏗️ Cấu trúc dự án
```
jx2-ide/
├── electron/ # Tiến trình chính (Node.js)
│ ├── main.ts # Entry point, quản lý cửa sổ
│ ├── preload.ts # Cầu nối IPC (context isolation)
│ ├── core/
│ │ ├── EncodingManager.ts # ★ Engine mã hóa mức byte
│ │ └── SearchEngine.ts # ★ Tìm kiếm xuyên mã hóa
│ └── ipc/
│ ├── fileHandlers.ts # Đọc/ghi/liệt kê file
│ ├── searchHandlers.ts # IPC tìm kiếm
│ │ └── logHandlers.ts # Theo dõi log
│ │ └── gitHandlers.ts # Git operations
├── src/ # Tiến trình renderer (React)
│ ├── App.tsx # Layout gốc
│ ├── stores/editorStore.ts # Trạng thái Zustand
│ ├── components/
│ │ ├── FileExplorer/ # Cây file + giải mã GB18030
│ │ ├── Editor/ # Monaco + tô sáng Lua
│ │ ├── TabBar/ # Tab file đang mở
│ │ ├── StatusBar/ # Chuyển đổi mã hóa
│ │ ├── SearchPanel/ # Giao diện tìm kiếm
│ │ ├── TabularView/ # Trình soạn file TSV (AG Grid)
│ │ ├── GitPanel/ # Panel Git (stage/commit/push)
│ │ └── LogWatcher/ # Console log server
│ └── styles/index.css # Giao diện tối
├── .github/workflows/
│ └── release.yml # CI/CD tự build khi push tag
├── electron-builder.yml # Cấu hình build
├── plan.md # Lộ trình
└── CHANGELOG.md # Nhật ký thay đổi
```
## ⌨️ Phím tắt
### Chung
| Phím tắt | Hành động |
|----------|-----------|
| `Ctrl+O` | Mở thư mục dự án |
| `Ctrl+S` | Lưu file hiện tại |
| `Ctrl+Shift+F` | Tìm kiếm xuyên mã hóa toàn dự án |
| `Shift+Shift` | Tìm kiếm theo tên file |
| `` Ctrl+` `` | Bật/tắt theo dõi log |
| `Ctrl+Shift+O` | Bật/tắt panel Outline |
| `Ctrl+Shift+J` | Mở/đóng bảng tra cứu JX2 Function Reference |
| `Ctrl+Shift+E` | Mở/đóng Batch Encoding Converter |
| `Ctrl+\` | Chia đôi editor (Split-Screen) |
| `Ctrl+Shift+G` | Mở/đóng Git Panel |
### Trình soạn thảo (Monaco)
| Phím tắt | Hành động |
|----------|-----------|
| `Ctrl+F` | Tìm kiếm trong file |
| `Ctrl+H` | Tìm & thay thế trong file |
| `Ctrl+D` | Chọn từ tiếp theo giống selection |
| `Ctrl+Shift+L` | Chọn tất cả từ giống selection |
| `Alt+Click` | Thêm con trỏ (multi-cursor) |
| `Ctrl+Click` / `F12` | Go-to-definition (Include paths) |
| `Ctrl+F2` | Bật/tắt bookmark tại dòng hiện tại |
| `F2` | Nhảy đến bookmark tiếp theo |
| `Shift+F2` | Nhảy đến bookmark trước đó |
## 🇻🇳 Gõ tiếng Việt (IME)
JX2 DevStudio sử dụng Electron (Chromium), **yêu cầu bộ gõ tiếng Việt ở chế độ "Preedit"** để hoạt động đúng. Nếu gõ tiếng Việt bị mất chữ hoặc hiển thị sai, hãy kiểm tra cấu hình bộ gõ:
### ibus-bamboo (khuyến nghị)
1. Chuột phải vào icon bộ gõ trên thanh hệ thống → **Preferences**
2. Tại mục **"Kiểu gõ"**, chọn **"Dùng editor giả"** (Preedit)
3. **Không** dùng chế độ "Surrounding text" hoặc "Backspace"
### fcitx-unikey
1. Mở **Fcitx Configuration** → chọn **Unikey**
2. Bật **"Preedit"** trong phần cài đặt
### Tại sao cần Preedit?
Chế độ "Surrounding text/Backspace" gửi ký tự thô (ví dụ: `a`) rồi xóa và thay bằng ký tự đã tổ hợp (ví dụ: `â`). Tuy nhiên, ký tự tổ hợp bị mất ở tầng Chromium trước khi đến trình soạn mã. Chế độ **Preedit** sử dụng W3C Composition API (chuẩn web), tương thích hoàn toàn với Electron/Chromium.
> **Lưu ý:** VS Code cũng sử dụng Electron nhưng có xử lý đặc biệt cho IME ở mức thấp. JX2 DevStudio hoạt động tốt nhất với chế độ Preedit.
## 📦 Công nghệ sử dụng
| Thành phần | Công nghệ |
|------------|-----------|
| Shell Desktop | Electron 33 |
| UI Framework | React 18 + TypeScript |
| Bundler | Vite 5 |
| Trình soạn thảo | Monaco Editor (engine VS Code) |
| Mã hóa | iconv-lite |
| Bảng dữ liệu | AG Grid |
| Theo dõi file | chokidar |
| Quản lý trạng thái | Zustand |
| Git | simple-git |
| CI/CD | GitHub Actions |
| Đóng gói | electron-builder |
## 🗺️ Lộ trình
Xem [plan.md](plan.md) để biết lộ trình đầy đủ. Các mốc sắp tới:
- **v1.1** ✅ — Lua autocomplete, go-to-definition, document outline
- **v1.2** ✅ — Tìm kiếm regex, tìm & thay thế toàn dự án, bộ lọc tìm kiếm, nhóm kết quả, batch encoding converter, symbol masks
- **v1.3** ✅ — Grid view thêm/xóa hàng cột, Config diff view, Batch converter target folders
- **v1.4** ✅ — Tích hợp Git cơ bản, Split-screen editor, JX2 Menu, Cải thiện Grid View
- **v1.5** — Tích hợp server JX2 (start/stop, theo dõi sức khỏe)
- **v1.6** — Kết nối từ xa WSL / SSH
- **v2.0** — Hệ thống plugin, đa ngôn ngữ
## 🤝 Đóng góp
1. Fork repository
2. Tạo nhánh tính năng: `git checkout -b feature/tinh-nang-cua-toi`
3. Thực hiện thay đổi và cập nhật `plan.md` + `CHANGELOG.md`
4. Push và tạo Pull Request
## 📄 Giấy phép
MIT © [meesudzu](https://github.com/meesudzu)