diff --git a/plugins/editor/build.gradle.kts b/plugins/editor/build.gradle.kts
index 6d983df..1ba9e4c 100644
--- a/plugins/editor/build.gradle.kts
+++ b/plugins/editor/build.gradle.kts
@@ -4,7 +4,7 @@ plugins {
-project.version = "0.0.7"
+project.version = "0.0.8"
dependencies {
diff --git a/plugins/editor/src/main/kotlin/app/termora/plugins/editor/EditorPanel.kt b/plugins/editor/src/main/kotlin/app/termora/plugins/editor/EditorPanel.kt
index cda8b00..9a201a1 100644
--- a/plugins/editor/src/main/kotlin/app/termora/plugins/editor/EditorPanel.kt
+++ b/plugins/editor/src/main/kotlin/app/termora/plugins/editor/EditorPanel.kt
@@ -1,9 +1,6 @@
package app.termora.plugins.editor
-import app.termora.DocumentAdaptor
-import app.termora.DynamicColor
-import app.termora.EnableManager
-import app.termora.Icons
+import app.termora.*
import app.termora.database.DatabaseManager
import com.formdev.flatlaf.FlatLaf
import com.formdev.flatlaf.extras.components.FlatTextField
@@ -39,6 +36,10 @@ class EditorPanel(private val window: JFrame, private val file: File) : JPanel(B
companion object {
private val log = LoggerFactory.getLogger(EditorPanel::class.java)
+ private val saveIcon = DynamicIcon(
+ "icons/save.svg", "icons/save_dark.svg",
+ loader = EditorPlugin::class.java.classLoader
+ )
}
private var text = file.readText(Charsets.UTF_8)
@@ -54,6 +55,7 @@ class EditorPanel(private val window: JFrame, private val file: File) : JPanel(B
private val prevBtn = JButton(Icons.up)
private val context = SearchContext()
private val softWrapBtn = JToggleButton(Icons.softWrap)
+ private val saveBtn = JButton(saveIcon)
private val scrollUpBtn = JButton(Icons.scrollUp)
private val scrollEndBtn = JButton(Icons.scrollDown)
private val prettyBtn = JButton(Icons.reformatCode)
@@ -141,11 +143,18 @@ class EditorPanel(private val window: JFrame, private val file: File) : JPanel(B
)
toolbar.orientation = VERTICAL
+ toolbar.add(saveBtn)
toolbar.add(scrollUpBtn)
toolbar.add(prettyBtn)
toolbar.add(softWrapBtn)
toolbar.add(scrollEndBtn)
+ saveBtn.toolTipText = EditorI18n.getString("termora.plugins.editor.save")
+ scrollUpBtn.toolTipText = EditorI18n.getString("termora.plugins.editor.first-line")
+ scrollEndBtn.toolTipText = EditorI18n.getString("termora.plugins.editor.last-line")
+ softWrapBtn.toolTipText = EditorI18n.getString("termora.plugins.editor.soft-wrap")
+ prettyBtn.toolTipText = EditorI18n.getString("termora.plugins.editor.format")
+
val viewPanel = JPanel(BorderLayout())
viewPanel.add(scrollPane, BorderLayout.CENTER)
viewPanel.add(toolbar, BorderLayout.EAST)
@@ -211,6 +220,8 @@ class EditorPanel(private val window: JFrame, private val file: File) : JPanel(B
}
})
+ saveBtn.addActionListener(textArea.actionMap.get("Save"))
+
textArea.actionMap.put("Format", object : AbstractAction() {
override fun actionPerformed(e: ActionEvent) {
format()
diff --git a/plugins/editor/src/main/resources/i18n/messages.properties b/plugins/editor/src/main/resources/i18n/messages.properties
index 283e6ff..f187dfa 100644
--- a/plugins/editor/src/main/resources/i18n/messages.properties
+++ b/plugins/editor/src/main/resources/i18n/messages.properties
@@ -1,2 +1,6 @@
termora.plugins.editor.not-save=The file has not been saved. Are you sure you want to exit?
-
+termora.plugins.editor.save=Save
+termora.plugins.editor.first-line=Jump to first line
+termora.plugins.editor.last-line=Jump to last line
+termora.plugins.editor.soft-wrap=Soft-wrap
+termora.plugins.editor.format=Format
diff --git a/plugins/editor/src/main/resources/i18n/messages_ru_RU.properties b/plugins/editor/src/main/resources/i18n/messages_ru_RU.properties
index ca83b53..ea1eb49 100644
--- a/plugins/editor/src/main/resources/i18n/messages_ru_RU.properties
+++ b/plugins/editor/src/main/resources/i18n/messages_ru_RU.properties
@@ -1 +1,6 @@
-termora.plugins.editor.not-save=Файл не сохранён. Вы уверены, что хотите выйти?
\ No newline at end of file
+termora.plugins.editor.not-save=Файл не сохранён. Вы уверены, что хотите выйти?
+termora.plugins.editor.save=Сохранить
+termora.plugins.editor.first-line=Перейти на первую строку
+termora.plugins.editor.last-line=Перейти на последнюю строку
+termora.plugins.editor.soft-wrap=Мягкий перенос
+termora.plugins.editor.format=Формат
diff --git a/plugins/editor/src/main/resources/i18n/messages_zh_CN.properties b/plugins/editor/src/main/resources/i18n/messages_zh_CN.properties
index 35765e4..dc0d980 100644
--- a/plugins/editor/src/main/resources/i18n/messages_zh_CN.properties
+++ b/plugins/editor/src/main/resources/i18n/messages_zh_CN.properties
@@ -1 +1,6 @@
termora.plugins.editor.not-save=文件尚未保存,你确定要退出吗?
+termora.plugins.editor.save=保存
+termora.plugins.editor.first-line=跳转到第一行
+termora.plugins.editor.last-line=跳转到最后一行
+termora.plugins.editor.soft-wrap=自动换行
+termora.plugins.editor.format=格式化
diff --git a/plugins/editor/src/main/resources/i18n/messages_zh_TW.properties b/plugins/editor/src/main/resources/i18n/messages_zh_TW.properties
index 2f53881..b8822b3 100644
--- a/plugins/editor/src/main/resources/i18n/messages_zh_TW.properties
+++ b/plugins/editor/src/main/resources/i18n/messages_zh_TW.properties
@@ -1 +1,6 @@
-termora.plugins.editor.not-save=檔案尚未儲存,你確定要退出嗎?
\ No newline at end of file
+termora.plugins.editor.not-save=檔案尚未儲存,你確定要退出嗎?
+termora.plugins.editor.save=儲存
+termora.plugins.editor.first-line=跳到第一行
+termora.plugins.editor.last-line=跳到最後一行
+termora.plugins.editor.soft-wrap=自動換行
+termora.plugins.editor.format=格式化
diff --git a/plugins/editor/src/main/resources/icons/save.svg b/plugins/editor/src/main/resources/icons/save.svg
new file mode 100644
index 0000000..28089cd
--- /dev/null
+++ b/plugins/editor/src/main/resources/icons/save.svg
@@ -0,0 +1,4 @@
+
+
diff --git a/plugins/editor/src/main/resources/icons/save_dark.svg b/plugins/editor/src/main/resources/icons/save_dark.svg
new file mode 100644
index 0000000..2372e3e
--- /dev/null
+++ b/plugins/editor/src/main/resources/icons/save_dark.svg
@@ -0,0 +1,4 @@
+
+