Merge remote-tracking branch 'origin/release-v1.1.12' into feature-I7XXVS
# Conflicts: # src/main/java/module-info.java # src/main/java/org/jcnc/jnotepad/LunchApp.java # src/main/java/org/jcnc/jnotepad/controller/event/handler/menubar/NewFile.java # src/main/java/org/jcnc/jnotepad/controller/event/handler/menubar/OpenFile.java # src/main/java/org/jcnc/jnotepad/controller/event/handler/menubar/RenameFile.java # src/main/java/org/jcnc/jnotepad/controller/event/handler/menubar/SaveFile.java # src/main/java/org/jcnc/jnotepad/root/RootBorderPane.java # src/main/java/org/jcnc/jnotepad/root/bottom/RootBottomSideBarVBox.java # src/main/java/org/jcnc/jnotepad/root/center/main/MainBorderPane.java # src/main/java/org/jcnc/jnotepad/root/right/RootRightSideBarVBox.java # src/main/java/org/jcnc/jnotepad/root/top/RootTopBorderPane.java # src/main/java/org/jcnc/jnotepad/tool/SingletonUtil.java # src/main/java/org/jcnc/jnotepad/tool/UiUtil.java # src/main/java/org/jcnc/jnotepad/ui/module/LineNumberTextArea.java
This commit is contained in:
commit
ffaa91ca9a
@ -1,7 +1,7 @@
|
||||
name: Bug 反馈
|
||||
description: 当你在代码中发现了一个 Bug,导致应用崩溃或抛出异常,或者有一个组件存在问题,或者某些地方看起来不对劲。
|
||||
title: "[Bug]: "
|
||||
labels: ["bug"]
|
||||
labels: [ "bug" ]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
name: 功能建议
|
||||
description: 对本项目提出一个功能建议
|
||||
title: "[功能建议]: "
|
||||
labels: ["feature"]
|
||||
labels: [ "feature" ]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
name: 重构
|
||||
description: 对本项目提出一个功能建议
|
||||
title: "[重构]: "
|
||||
labels: ["refactor"]
|
||||
labels: [ "refactor" ]
|
||||
body:
|
||||
- type: textarea
|
||||
id: related-problem
|
||||
|
||||
28
README.md
28
README.md
@ -4,8 +4,9 @@
|
||||

|
||||

|
||||
|
||||
JNotepad(Java Notepad)是一款简约而强大的跨平台文本编辑器,旨在提供用户友好的界面和丰富的功能。无论你是在Linux、Windows还是macOS系统上使用,JNotepad都能满足你对文本编辑和查看的需求。
|
||||
JNotepad使用Java语言编写,并基于JavaFX框架开发,具有良好的可扩展性和稳定性。
|
||||
|
||||
JNotepad(Java Notepad)是一款简约而强大的跨平台文本编辑器,旨在提供用户友好的界面和丰富的功能。无论你是在Linux、Windows还是macOS系统上使用,JNotepad都能满足你对文本编辑和查看的需求。 JNotepad使用Java语言编写,并基于JavaFX框架开发,具有良好的可扩展性和稳定性。
|
||||
## 功能介绍
|
||||
|
||||
- 文本编辑和查看:JNotepad提供了完善的文本编辑和查看功能,使你能够轻松创建、编辑和浏览各种类型的文本文件。
|
||||
@ -16,31 +17,32 @@ JNotepad(Java Notepad)是一款简约而强大的跨平台文本编辑器,旨
|
||||
|
||||
- 基于Java:JNotepad使用Java语言编写,并基于JavaFX框架开发,具有良好的可扩展性和稳定性。
|
||||
|
||||
|
||||
## 安装教程
|
||||
|
||||
1. Windows 平台,可以直接使用我编译好的可执行程序或自己编译
|
||||
1. Windows 平台,可以直接使用我编译好的可执行程序或自己编译
|
||||
|
||||
[gitee-download]: https://gitee.com/jcnc-org/JNotepad/releases
|
||||
|
||||
[java-download]: https://www.oracle.com/cn/java/technologies/downloads/
|
||||
|
||||
[qq-url]: http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=zOfwWb1lcle68cbEdJCjSIp3Itx0nEC0&authKey=bOsZFT9OVYZpZQbS6IYO4onBQoeBorF5nanMEi1G%2FgPbzmUkOweXBo9qB0G34R5K&noverify=0&group_code=386279455
|
||||
|
||||
|
||||
|
||||
- [下载][gitee-download]
|
||||
|
||||
2. Linux/MacOS 平台,查看入门指南
|
||||
|
||||
|
||||
## 入门指南
|
||||
|
||||
要使用 JNotepad,请按照以下步骤进行:
|
||||
|
||||
1. 下载并安装 Java(如果尚未安装)。
|
||||
|
||||
- [下载][gitee-download]
|
||||
|
||||
2. 克隆或下载 JNotepad 项目。
|
||||
|
||||
<pre><code>git clone https://gitee.com/jcnc-org/JNotepad.git</code></pre>
|
||||
|
||||
3. 在您偏好的 Java IDE 中打开项目。
|
||||
|
||||
## 使用方法
|
||||
@ -48,10 +50,12 @@ JNotepad(Java Notepad)是一款简约而强大的跨平台文本编辑器,旨
|
||||
1. 运行 `JNotepad` 类以启动应用程序。
|
||||
2. 主窗口将显示菜单栏、标签区域和状态栏。
|
||||
3. 使用菜单栏执行各种操作:
|
||||
- `文件 > 新建`:创建一个带有空白文本区域的新标签。
|
||||
- `文件 > 打开`:打开现有文本文件进行编辑。
|
||||
- `文件 > 保存`:将当前活动标签的内容保存到关联文件中。
|
||||
- `文件 > 另存为`:将当前活动标签的内容保存为新文件。
|
||||
|
||||
- `文件 > 新建`:创建一个带有空白文本区域的新标签。
|
||||
- `文件 > 打开`:打开现有文本文件进行编辑。
|
||||
- `文件 > 保存`:将当前活动标签的内容保存到关联文件中。
|
||||
- `文件 > 另存为`:将当前活动标签的内容保存为新文件。
|
||||
|
||||
4. 在每个标签的文本区域中编辑内容。
|
||||
5. 状态栏将显示有关光标位置和文本统计信息的信息。
|
||||
|
||||
@ -64,7 +68,9 @@ JNotepad(Java Notepad)是一款简约而强大的跨平台文本编辑器,旨
|
||||
<version>17.0.1</version>
|
||||
</dependency>
|
||||
<dependencies>
|
||||
## 软件运行截图
|
||||
|
||||
## 软件运行截图
|
||||
|
||||
- Windows 平台
|
||||

|
||||
- MacOS 平台
|
||||
|
||||
31
docs/开发指南.md
31
docs/开发指南.md
@ -1,19 +1,31 @@
|
||||
# 1. 开发流程
|
||||
|
||||
基于**AoneFlow**开发流程,具体请阅读:[在阿里,我们如何管理代码分支?](https://developer.aliyun.com/article/573549)
|
||||
|
||||
## 1.1 IDEA IDE版
|
||||
### 步骤一 Fork JCNC/JNotepad或同步JCNC/JNotepad到个人仓库
|
||||
|
||||
### 步骤一 Fork JCNC/JNotepad或同步JCNC/JNotepad到个人仓库
|
||||
|
||||
#### 首次开发,进行Fork操作
|
||||
|
||||

|
||||
|
||||
#### 非首次开发,进行同步操作
|
||||
|
||||

|
||||
|
||||
### 步骤二 clone个人仓库或fetch
|
||||
|
||||
#### 首次开发,clone个人仓库
|
||||
|
||||

|
||||
|
||||
#### 非首次开发,执行fetch
|
||||
|
||||

|
||||
|
||||
### 步骤三 从remote下的master分支创建本地开发分支。
|
||||
|
||||
**特殊情况:开发依赖release分支已提交内容,或是对已提交内容进行修改,那么需要从release分支上进行拉取。**
|
||||

|
||||

|
||||
@ -23,12 +35,15 @@
|
||||
### 步骤四 推送本地分支到远程
|
||||
|
||||
### 步骤五 发起Pull Request(PR)
|
||||
|
||||

|
||||
|
||||
**注意:目标分支选择预期要发布的release分支**
|
||||
|
||||
## 1.2 GIT命令行版本
|
||||
|
||||
步骤一、步骤二、步骤五同1.1操作
|
||||
|
||||
```shell
|
||||
# 步骤三
|
||||
git fetch
|
||||
@ -38,24 +53,28 @@ git push origin feature-demo
|
||||
```
|
||||
|
||||
## 1.3 分支命名规则
|
||||
|issue类别|分支名格式|示例|
|
||||
|--------|--------|----|
|
||||
|功能/优化/文档修改|feature-issue编号|feature-I7W9LX|
|
||||
|bug fix| fix-issue编号| fix-I7W9LX|
|
||||
|代码重构|refactor-issue编号|refactor-I7W9LX|
|
||||
|
||||
| issue类别 | 分支名格式 | 示例 |
|
||||
|------------|------------------|-----------------|
|
||||
| 功能/优化/文档修改 | feature-issue编号 | feature-I7W9LX |
|
||||
| bug fix | fix-issue编号 | fix-I7W9LX |
|
||||
| 代码重构 | refactor-issue编号 | refactor-I7W9LX |
|
||||
|
||||
# 2. IDEA插件配置
|
||||
|
||||
* 安装Resource Bundle插件
|
||||

|
||||
* 安装成功后,打开i18n.properties,可以看到Resource Bundle tab
|
||||

|
||||
|
||||
# Q&A
|
||||
|
||||
Q: 本地开发时,主仓库合并了新代码,如何处理?
|
||||
A: 继续完成本地开发,发起PR时再解决冲突。
|
||||
|
||||
Q: 解决冲突步骤是什么?
|
||||
A: 一般按如下步骤。
|
||||
|
||||
1. 先同步主仓库
|
||||
2. 本地仓库进行fetch
|
||||
3. 本地开发分支merge/pull/rebase更新的release分支
|
||||
4
pom.xml
4
pom.xml
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@ package org.jcnc.jnotepad.controller.event.handler.tool;
|
||||
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.event.EventHandler;
|
||||
import org.jcnc.jnotepad.tool.UiUtil;
|
||||
import org.jcnc.jnotepad.ui.setStage.SetStage;
|
||||
|
||||
/**
|
||||
* 设置按钮事件的事件处理程序。
|
||||
@ -20,6 +20,6 @@ public class SetBtn implements EventHandler<ActionEvent> {
|
||||
*/
|
||||
@Override
|
||||
public void handle(ActionEvent event) {
|
||||
UiUtil.getSetStage().openSetStage();
|
||||
SetStage.getInstance().openSetStage();
|
||||
}
|
||||
}
|
||||
|
||||
@ -80,6 +80,7 @@ public class MainTab extends Tab {
|
||||
|
||||
/**
|
||||
* 保存为指定文件
|
||||
*
|
||||
* @param file 新文件
|
||||
*/
|
||||
public void save(File file) {
|
||||
|
||||
@ -1,8 +1,9 @@
|
||||
package org.jcnc.jnotepad.root.center.main.center.tab;
|
||||
|
||||
import javafx.scene.control.TabPane;
|
||||
import org.jcnc.jnotepad.root.center.main.bottom.status.JNotepadStatusBox;
|
||||
import org.jcnc.jnotepad.root.top.menu.JNotepadMenuBar;
|
||||
import org.jcnc.jnotepad.tool.SingletonUtil;
|
||||
import org.jcnc.jnotepad.tool.UiUtil;
|
||||
|
||||
/**
|
||||
* 标签页布局组件封装。
|
||||
@ -30,10 +31,10 @@ public class MainTabPane extends TabPane {
|
||||
(ov, from, to) -> {
|
||||
if (to != null) {
|
||||
// 更新菜单栏中与tab相关设置
|
||||
UiUtil.getMenuBar().updateMenuStatusBySelectedTab();
|
||||
JNotepadMenuBar.getInstance().updateMenuStatusBySelectedTab();
|
||||
}
|
||||
// 更新状态标签
|
||||
UiUtil.getStatusBox().updateWhenTabSelected();
|
||||
JNotepadStatusBox.getInstance().updateWhenTabSelected();
|
||||
}
|
||||
);
|
||||
}
|
||||
@ -71,6 +72,6 @@ public class MainTabPane extends TabPane {
|
||||
public void fireTabSelected() {
|
||||
MainTab selectedTab = getSelected();
|
||||
selectedTab.setAutoLine(SingletonUtil.getAppConfigController().getAutoLineConfig());
|
||||
UiUtil.getStatusBox().updateWhenTabSelected();
|
||||
JNotepadStatusBox.getInstance().updateWhenTabSelected();
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,12 +13,12 @@ import java.io.File;
|
||||
*/
|
||||
public class TextFileChooserFactory implements FileChooserFactory {
|
||||
|
||||
private static final TextFileChooserFactory INSTANCE = new TextFileChooserFactory();
|
||||
|
||||
private TextFileChooserFactory() {
|
||||
|
||||
}
|
||||
|
||||
private static final TextFileChooserFactory INSTANCE = new TextFileChooserFactory();
|
||||
|
||||
public static TextFileChooserFactory getInstance() {
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
@ -1,30 +1,41 @@
|
||||
# 打包
|
||||
|
||||
## 准备
|
||||
|
||||
1. 下载maven 3.8.8, [Download](https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.zip)
|
||||
2. 下载GraalVM。在[GraalVM下载页](https://www.graalvm.org/downloads/#)选择Java17,操作系统后,点击Download下载。
|
||||
|
||||
# Windows下基于GraalVM的打包
|
||||
|
||||
## 配置maven和GraalVM
|
||||
|
||||
1. 将下载的压缩包解压到目录,例如:d:\tools\maven,D:\tools\graalvm-17\graalvm-jdk-17.0.8+9.1
|
||||
2. 配置环境变量
|
||||
|
||||
```
|
||||
GRAALVM_HOME=D:\tools\graalvm-17\graalvm-jdk-17.0.8+9.1
|
||||
M2_HOME=d:\tools\maven
|
||||
```
|
||||
|
||||

|
||||
|
||||
3. 配置PATH环境变量
|
||||

|
||||

|
||||
4. 安装visual studio build tools
|
||||
安装说明:https://www.graalvm.org/latest/docs/getting-started/windows/
|
||||
a) 下载安装程序:https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=16
|
||||
b) 参考网页中的安装步骤
|
||||
安装说明:https://www.graalvm.org/latest/docs/getting-started/windows/
|
||||
a) 下载安装程序:https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=16
|
||||
b) 参考网页中的安装步骤
|
||||
5. 验证安装成功
|
||||
使用下面命令启动编译环境
|
||||
使用下面命令启动编译环境
|
||||
|
||||
```
|
||||
cmd.exe /k F:\vs\ide\VC\Auxiliary\Build\vcvars64.bat
|
||||
```
|
||||
|
||||
需要把F:\vs\ide替换为本地的visual stuido安装路径。
|
||||
|
||||
6. 进入项目tool目录,执行build.bat进行打包,生成可执行文件。
|
||||
|
||||
```
|
||||
build.bat
|
||||
```
|
||||
Loading…
x
Reference in New Issue
Block a user