larc r15

41 lines ยท 983 B Raw
1 package org.iwakura.larcjb
2
3 import com.intellij.openapi.components.*
4 import com.intellij.openapi.project.Project
5
6 @Service(Service.Level.PROJECT)
7 @State(
8 name = "LarcVcsSettings",
9 storages = [Storage("larc.xml")]
10 )
11 class LarcVcsSettings : PersistentStateComponent<LarcVcsSettings.State> {
12
13 private var state = State()
14
15 class State {
16 var executablePath: String = ""
17 var defaultAuthor: String = ""
18 }
19
20 var executablePath: String
21 get() = state.executablePath
22 set(value) { state.executablePath = value }
23
24 var defaultAuthor: String
25 get() = state.defaultAuthor
26 set(value) { state.defaultAuthor = value }
27
28 override fun getState(): State = state
29
30 override fun loadState(state: State) {
31 this.state = state
32 }
33
34 companion object {
35 @JvmStatic
36 fun getInstance(project: Project): LarcVcsSettings {
37 return project.getService(LarcVcsSettings::class.java)
38 }
39 }
40 }
41