Options screen
[?]
Apr 11, 2021, 4:46 PM
POQV6EZEPJLYHUC2HN3BYTRPR7V5V2ILWXU56SNMTA6ETE74QNTACDependencies
- [2]
DLDMHQY6Add experimental build 3 and options - [3]
OMZXJL6QReady for pijul push! First nightly build will be released shortly! - [4]
OPFG6CZ2File status tracking supported. - [5]
B43WNBLF- Add Show History to Pijul menu - Always ignore .idea and .pijul in tracking. - Make findPijul a generic function to allow to find editor-server. - Only show one revision for directories. - Add `Hunk::resolvePath(Path)` to resolve the affected file to a Java NIO Path. - Fix StringOutOfBounds in Change Parsering Algorithm - Use editor-server instead of copie for interfacing with `pijul record` file. - Fix FileStatus provider not returning correctly for untracked files. - Add CommittedChangesProvider for Pijul. - [6]
FNNW5IEAAdded more plugin files to Pijul - [7]
ISO7J5ZHMore caches, better and generic cache code. Now Dracon listen to file changes to drop cached data. Implemented caches: - File contents in specific revision (never dropped) - Pijul ls and Pijul diff results - File Revision and File changes by patch - some others.. Dracon is incredible fast now, but still will take some time for bigger repos. - [8]
2N67RQZCAdd auto installation support and cache content of ContentRevision - [9]
FRFFQV7VBasic show history support. - [10]
ZCRW57C5Improved support for revisions - [11]
Q35OTML2Remove use of coroutines, which was blocking IntelliJ UI in larger repositories Improvements for bigger repositories, now Dracon caches the changes that happened in a revision in a file, so everytime Dracon needs to query the changes of a revision, it loads directly from memory instead of doing a full-scan in Pijul repository. For tiny projects it is not a problem, but for medium ones it takes more than five minutes to scan the entire repository (and it was tested with a repo of only 700 records, however there was changes that had more than 60.000 lines). The cache file is saved in IntelliJ Data Path (project specific) and is compressed with gzip, so it will not use so much disk space (the cost worths the gains). - [*]
GGYFPXNDInitial plugin - [*]
Q7FXTHVUFirst record support, YEAAAH, RECOOORD - [*]
RE4EKNSLImprovements, a lot
Change contents
- replacement in src/main/resources/messages/DraconBundle.properties at line 99
settings.pijul.path.detect.text=Detectsettings.pijul.path.description.text=Dracon does not embed the pijul binary, you should install itsettings.pijul.path.tooltip.text=Dracon does not embed the pijul binary, you should install it using cargo or by \downloading a build for your platform. See <a href="https://oblitersoftware.github.io/">Dracon installation</a>settings.pijul.text=Pijul settingssettings.editor.text=Editor server settingssettings.editor.path.text=Editor server path:settings.editor.path.tooltip.text=Dracon does not embed the editor-server binary, you should install it using cargo or by \downloading a build for your platform. See <a href="https://oblitersoftware.github.io/">Dracon installation</a>settings.install.text=Click here to read more about Dracon installation.settings.pijul.path.detect.text=Detect Pijulsettings.editor.path.detect.text=Detect Editor Server - edit in src/main/resources/messages/DraconBundle.properties at line 111
settings.editor.path.select.text=Select Editor Server Binary - edit in src/main/kotlin/com/github/jonathanxd/dracon/util/Application.kt at line 3
import com.github.jonathanxd.dracon.config.PijulSettingsimport com.intellij.openapi.components.service - edit in src/main/kotlin/com/github/jonathanxd/dracon/util/Application.kt at line 9
fun findPijul(): String =service<PijulSettings>().getPathToPijul() ?: findBinary("pijul")fun findPijulOrNull(): String? =service<PijulSettings>().getPathToPijul() ?: findBinaryOrNull("pijul")fun findEditorServer(): String =service<PijulSettings>().getPathToEditorServer() ?: findBinary("editor-server") - edit in src/main/kotlin/com/github/jonathanxd/dracon/util/Application.kt at line 19
fun findEditorServerOrNull(): String? =service<PijulSettings>().getPathToEditorServer() ?: findBinaryOrNull("editor-server") - edit in src/main/kotlin/com/github/jonathanxd/dracon/config/PijulSettings.kt at line 42
fun savePathToEditorServer(pathToEditorServer: String?) {this.state.pathToEditorServer = pathToEditorServer}fun getPathToEditorServer() =this.state.pathToEditorServer - edit in src/main/kotlin/com/github/jonathanxd/dracon/config/PijulSettings.kt at line 66[14.6634][15.13585]
@get:OptionTag("PATH_TO_EDITOR_SERVER")var pathToEditorServer by string(defaultValue = findBinaryOrNull("editor-server")) - edit in src/main/kotlin/com/github/jonathanxd/dracon/component/PijulSettingsConfigurable.kt at line 24
val pathToEditor = settings.getPathToEditorServer() - edit in src/main/kotlin/com/github/jonathanxd/dracon/component/PijulSettingsConfigurable.kt at line 27
modified = modified || (this.pijulSettingsComponent?.editorServerPath?.text != pathToEditor) - edit in src/main/kotlin/com/github/jonathanxd/dracon/component/PijulSettingsConfigurable.kt at line 35
settings.savePathToEditorServer(this.pijulSettingsComponent?.editorServerPath?.text) - edit in src/main/kotlin/com/github/jonathanxd/dracon/component/PijulSettingsConfigurable.kt at line 46
this.pijulSettingsComponent?.editorServerPath?.text = settings.getPathToEditorServer() ?: "" - edit in src/main/kotlin/com/github/jonathanxd/dracon/component/PijulSettingsComponent.kt at line 5
import com.github.jonathanxd.dracon.util.wrapInHmlimport com.intellij.ide.BrowserUtil - edit in src/main/kotlin/com/github/jonathanxd/dracon/component/PijulSettingsComponent.kt at line 12
import com.intellij.ui.HyperlinkLabel - edit in src/main/kotlin/com/github/jonathanxd/dracon/component/PijulSettingsComponent.kt at line 15
import com.intellij.ui.components.JBTextArea - replacement in src/main/kotlin/com/github/jonathanxd/dracon/component/PijulSettingsComponent.kt at line 22
import javax.swing.JButtonimport javax.swing.JComponentimport javax.swing.JPanelimport javax.swing.* - edit in src/main/kotlin/com/github/jonathanxd/dracon/component/PijulSettingsComponent.kt at line 41
it.toolTipText = DraconBundle.message("settings.pijul.path.tooltip.text") - edit in src/main/kotlin/com/github/jonathanxd/dracon/component/PijulSettingsComponent.kt at line 44
val editorServerPath = TextFieldWithBrowseButton().also {it.addBrowseFolderListener(DraconBundle.message("settings.editor.path.select.text"),"",null,FileChooserDescriptor(true, false, false, false, false, false).withFileFilter { file: VirtualFile? ->file?.name == "editor-server"})it.toolTipText = DraconBundle.message("settings.editor.path.tooltip.text")} - edit in src/main/kotlin/com/github/jonathanxd/dracon/component/PijulSettingsComponent.kt at line 66
val detectEditorServer = JButton(DraconBundle.message("settings.editor.path.detect.text")).also {it.addMouseListener(object : MouseAdapter() {override fun mouseClicked(e: MouseEvent) {editorServerPath.text = findBinaryOrNull("editor-server") ?: ""}})it.updateUI()} - edit in src/main/kotlin/com/github/jonathanxd/dracon/component/PijulSettingsComponent.kt at line 77
.addLabeledComponent(JBLabel(DraconBundle.message("settings.pijul.text")), JSeparator()) - replacement in src/main/kotlin/com/github/jonathanxd/dracon/component/PijulSettingsComponent.kt at line 79
JBLabel(DraconBundle.message("settings.pijul.path.text")), pijulPath, 1, falseJBLabel(DraconBundle.message("settings.pijul.path.text")).also {it.toolTipText = DraconBundle.message("settings.pijul.path.tooltip.text")}, pijulPath, 1, false - edit in src/main/kotlin/com/github/jonathanxd/dracon/component/PijulSettingsComponent.kt at line 86
}, 0).addLabeledComponent(JBLabel(DraconBundle.message("settings.editor.text")), JSeparator()).addLabeledComponent(JBLabel(DraconBundle.message("settings.editor.path.text")).also {it.toolTipText = DraconBundle.message("settings.editor.path.tooltip.text")}, editorServerPath, 1, false).addComponent(JPanel(BorderLayout()).also {it.add(detectEditorServer, BorderLayout.EAST) - edit in src/main/kotlin/com/github/jonathanxd/dracon/component/PijulSettingsComponent.kt at line 97
.addComponent(HyperlinkLabel(DraconBundle.message("settings.install.text")).also {it.addMouseListener(object : MouseAdapter() {override fun mouseClicked(e: MouseEvent) {BrowserUtil.browse("https://oblitersoftware.github.io/")}})}) - replacement in src/main/kotlin/com/github/jonathanxd/dracon/cmd/PijulCmd.kt at line 970
.command(listOf(this.findPijul()) + args).command(listOf(findPijul()) + args) - replacement in src/main/kotlin/com/github/jonathanxd/dracon/cmd/PijulCmd.kt at line 1023
.command(listOf(this.findPijul()) + args).command(listOf(findPijul()) + args) - replacement in src/main/kotlin/com/github/jonathanxd/dracon/cmd/PijulCmd.kt at line 1079
.command(listOf(this.findPijul()) + args).command(listOf(findPijul()) + args) - replacement in src/main/kotlin/com/github/jonathanxd/dracon/cmd/PijulCmd.kt at line 1139
.command(listOf(this.findPijul()) + args).command(listOf(findPijul()) + args) - replacement in src/main/kotlin/com/github/jonathanxd/dracon/cmd/PijulCmd.kt at line 1195
.command(listOf(this.findPijul()) + args).command(listOf(findPijul()) + args) - replacement in src/main/kotlin/com/github/jonathanxd/dracon/cmd/PijulCmd.kt at line 1248
val cmd = listOf(this.findPijul()) + argsval cmd = listOf(findPijul()) + args - edit in src/main/kotlin/com/github/jonathanxd/dracon/cmd/PijulCmd.kt at line 1289
private fun findPijul(): String =service<PijulSettings>().getPathToPijul() ?: findBinary("pijul") - replacement in src/main/kotlin/com/github/jonathanxd/dracon/activity/PijulPostStartupActivity.kt at line 9
import com.github.jonathanxd.dracon.util.escapeXmlimport com.github.jonathanxd.dracon.util.findBinaryimport com.github.jonathanxd.dracon.util.findBinaryOrNullimport com.github.jonathanxd.dracon.util.wrapInHmlimport com.github.jonathanxd.dracon.util.* - replacement in src/main/kotlin/com/github/jonathanxd/dracon/activity/PijulPostStartupActivity.kt at line 34
val hasPijul = findBinaryOrNull("pijul") != nullval hasEditorServer = findBinaryOrNull("editor-server") != nullval hasPijul = findPijulOrNull() != nullval hasEditorServer = findEditorServerOrNull() != null