Skip to content

Commit 9f802f9

Browse files
Code cleanup
1 parent f3c7fa0 commit 9f802f9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+106
-198
lines changed

plugin/src/main/kotlin/com/almightyalpaca/jetbrains/plugins/discord/plugin/actions/types/ToggleAction.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
package com.almightyalpaca.jetbrains.plugins.discord.plugin.actions.types
1818

19-
import com.almightyalpaca.jetbrains.plugins.discord.plugin.rpc.RichPresenceRenderService
19+
import com.almightyalpaca.jetbrains.plugins.discord.plugin.rpc.richPresenceRenderService
2020
import com.almightyalpaca.jetbrains.plugins.discord.plugin.settings.options.types.BooleanValue
2121
import com.almightyalpaca.jetbrains.plugins.discord.plugin.settings.options.types.toggle
2222
import com.intellij.openapi.actionSystem.AnAction
@@ -33,7 +33,7 @@ class ToggleAction(private val value: (Project) -> BooleanValue, private val ena
3333
val project = e.getData(PlatformDataKeys.PROJECT) ?: return
3434

3535
value(project).toggle()
36-
RichPresenceRenderService.instance.render()
36+
richPresenceRenderService.render()
3737
}
3838

3939
override fun update(e: AnActionEvent) {

plugin/src/main/kotlin/com/almightyalpaca/jetbrains/plugins/discord/plugin/components/ApplicationComponent.kt

+3-6
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ package com.almightyalpaca.jetbrains.plugins.discord.plugin.components
1818

1919
import com.almightyalpaca.jetbrains.plugins.discord.plugin.data.ApplicationData
2020
import com.almightyalpaca.jetbrains.plugins.discord.plugin.data.ApplicationDataBuilder
21-
import com.almightyalpaca.jetbrains.plugins.discord.plugin.utils.getComponent
21+
import com.almightyalpaca.jetbrains.plugins.discord.plugin.utils.lazyComponent
2222
import com.almightyalpaca.jetbrains.plugins.discord.shared.source.Source
2323
import com.intellij.openapi.components.BaseComponent
2424

@@ -28,9 +28,6 @@ interface ApplicationComponent : BaseComponent {
2828
val data: ApplicationData
2929

3030
fun app(builder: ApplicationDataBuilder.() -> Unit)
31-
32-
companion object {
33-
inline val instance: ApplicationComponent
34-
get() = getComponent(ApplicationComponent::class)
35-
}
3631
}
32+
33+
val applicationComponent: ApplicationComponent by lazyComponent()

plugin/src/main/kotlin/com/almightyalpaca/jetbrains/plugins/discord/plugin/components/ProjectComponent.kt

+6
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,10 @@
1616

1717
package com.almightyalpaca.jetbrains.plugins.discord.plugin.components
1818

19+
import com.almightyalpaca.jetbrains.plugins.discord.plugin.utils.getComponent
20+
import com.intellij.openapi.project.Project
21+
1922
interface ProjectComponent : com.intellij.openapi.components.ProjectComponent
23+
24+
val Project.component: ProjectComponent
25+
get() = this.getComponent()

plugin/src/main/kotlin/com/almightyalpaca/jetbrains/plugins/discord/plugin/components/impl/ApplicationComponentImpl.kt

+4-4
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ import com.almightyalpaca.jetbrains.plugins.discord.plugin.data.ApplicationData
2121
import com.almightyalpaca.jetbrains.plugins.discord.plugin.data.ApplicationDataBuilder
2222
import com.almightyalpaca.jetbrains.plugins.discord.plugin.listeners.*
2323
import com.almightyalpaca.jetbrains.plugins.discord.plugin.logging.Logging
24-
import com.almightyalpaca.jetbrains.plugins.discord.plugin.rpc.RichPresenceRenderService
25-
import com.almightyalpaca.jetbrains.plugins.discord.plugin.rpc.RichPresenceService
24+
import com.almightyalpaca.jetbrains.plugins.discord.plugin.rpc.richPresenceRenderService
25+
import com.almightyalpaca.jetbrains.plugins.discord.plugin.rpc.richPresenceService
2626
import com.almightyalpaca.jetbrains.plugins.discord.plugin.source.bintray.BintraySource
2727
import com.almightyalpaca.jetbrains.plugins.discord.shared.source.Source
2828
import com.almightyalpaca.jetbrains.plugins.discord.shared.source.local.LocalSource
@@ -57,7 +57,7 @@ class ApplicationComponentImpl : ApplicationComponent {
5757
private set(value) {
5858
field = value
5959

60-
RichPresenceRenderService.instance.render()
60+
richPresenceRenderService.render()
6161
}
6262

6363
override fun initComponent() {
@@ -74,7 +74,7 @@ class ApplicationComponentImpl : ApplicationComponent {
7474

7575
@Synchronized
7676
override fun disposeComponent() {
77-
RichPresenceService.instance.update(null)
77+
richPresenceService.update(null)
7878

7979
this.connection.disconnect()
8080

plugin/src/main/kotlin/com/almightyalpaca/jetbrains/plugins/discord/plugin/components/impl/ProjectComponentImpl.kt

+3-6
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,20 @@
1616

1717
package com.almightyalpaca.jetbrains.plugins.discord.plugin.components.impl
1818

19-
import com.almightyalpaca.jetbrains.plugins.discord.plugin.components.ApplicationComponent
2019
import com.almightyalpaca.jetbrains.plugins.discord.plugin.components.ProjectComponent
20+
import com.almightyalpaca.jetbrains.plugins.discord.plugin.components.applicationComponent
2121
import com.intellij.openapi.project.Project
2222

2323
class ProjectComponentImpl(val project: Project) : ProjectComponent {
2424
override fun initComponent() {
25-
ApplicationComponent.instance.app {
25+
applicationComponent.app {
2626
add(project)
2727
}
2828
}
2929

3030
override fun disposeComponent() {
31-
ApplicationComponent.instance.app {
31+
applicationComponent.app {
3232
remove(project)
3333
}
3434
}
3535
}
36-
37-
val Project.component: ProjectComponent
38-
get() = this.getComponent(ProjectComponent::class.java)

plugin/src/main/kotlin/com/almightyalpaca/jetbrains/plugins/discord/plugin/data/FileData.kt

+6-5
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,9 @@
1616

1717
package com.almightyalpaca.jetbrains.plugins.discord.plugin.data
1818

19-
import com.almightyalpaca.jetbrains.plugins.discord.plugin.services.UniqueFilePathBuilderService
19+
import com.almightyalpaca.jetbrains.plugins.discord.plugin.services.uniqueFilePathBuilderService
2020
import com.almightyalpaca.jetbrains.plugins.discord.plugin.utils.filePath
2121
import com.almightyalpaca.jetbrains.plugins.discord.plugin.utils.find
22-
import com.almightyalpaca.jetbrains.plugins.discord.plugin.utils.isReadOnly
2322
import com.almightyalpaca.jetbrains.plugins.discord.shared.matcher.FieldProvider
2423
import com.almightyalpaca.jetbrains.plugins.discord.shared.matcher.Matcher
2524
import com.almightyalpaca.jetbrains.plugins.discord.shared.utils.toSet
@@ -39,13 +38,15 @@ class FileData(
3938
val relativePath: Path by lazy { project.filePath.toAbsolutePath().relativize(virtualFile.filePath.toAbsolutePath()) }
4039
/** Path relative to the project directory in Unix style (aka using forward slashes) */
4140
val relativePathSane: String by lazy { FilenameUtils.separatorsToUnix(relativePath.toString()) }
42-
val name: String by lazy { virtualFile.name }
41+
val name
42+
get() = virtualFile.name
4343
val baseNames: Collection<String> by lazy { name.find('.').mapToObj { i -> name.substring(0, i) }.toSet() }
4444
val extensions: Collection<String> by lazy { name.find('.').mapToObj { i -> name.substring(i) }.toSet() }
4545

46-
val uniqueName by lazy { UniqueFilePathBuilderService.instance.getUniqueVirtualFilePathWithinOpenedFileEditors(project, virtualFile); }
46+
val uniqueName by lazy { uniqueFilePathBuilderService.getUniqueVirtualFilePathWithinOpenedFileEditors(project, virtualFile); }
4747

48-
val readOnly by lazy { virtualFile.isReadOnly }
48+
val isWriteable
49+
get() = virtualFile.isWritable
4950

5051
override fun getField(target: Matcher.Target) = when (target) {
5152
Matcher.Target.EXTENSION -> extensions

plugin/src/main/kotlin/com/almightyalpaca/jetbrains/plugins/discord/plugin/diagnose/DiagnoseComponent.kt

+3-6
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
package com.almightyalpaca.jetbrains.plugins.discord.plugin.diagnose
1818

19-
import com.almightyalpaca.jetbrains.plugins.discord.plugin.utils.application
19+
import com.almightyalpaca.jetbrains.plugins.discord.plugin.utils.lazyComponent
2020
import com.intellij.openapi.application.ApplicationNamesInfo
2121
import com.intellij.openapi.components.BaseComponent
2222
import kotlinx.coroutines.Deferred
@@ -40,9 +40,6 @@ interface DiagnoseComponent : BaseComponent {
4040
// TODO: periodically re-check Discord
4141
// fun reportDiscordConnectionChange()
4242
// fun reportInternetConnectionChange()
43-
44-
companion object {
45-
inline val instance: DiagnoseComponent
46-
get() = application.getComponent(DiagnoseComponent::class.java)
47-
}
4843
}
44+
45+
val diagnoseComponent: DiagnoseComponent by lazyComponent()

plugin/src/main/kotlin/com/almightyalpaca/jetbrains/plugins/discord/plugin/gui/preview/PreviewRenderer.kt

+5-13
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@
1616

1717
package com.almightyalpaca.jetbrains.plugins.discord.plugin.gui.preview
1818

19-
import com.almightyalpaca.jetbrains.plugins.discord.plugin.components.ApplicationComponent
19+
import com.almightyalpaca.jetbrains.plugins.discord.plugin.components.applicationComponent
2020
import com.almightyalpaca.jetbrains.plugins.discord.plugin.rpc.RichPresence
21-
import com.almightyalpaca.jetbrains.plugins.discord.plugin.rpc.RichPresenceService
2221
import com.almightyalpaca.jetbrains.plugins.discord.plugin.rpc.renderer.RenderContext
2322
import com.almightyalpaca.jetbrains.plugins.discord.plugin.rpc.renderer.Renderer
23+
import com.almightyalpaca.jetbrains.plugins.discord.plugin.rpc.richPresenceService
2424
import com.almightyalpaca.jetbrains.plugins.discord.plugin.utils.*
2525
import com.almightyalpaca.jetbrains.plugins.discord.plugin.utils.Color.blurple
2626
import com.almightyalpaca.jetbrains.plugins.discord.plugin.utils.Color.darkOverlay
@@ -71,10 +71,6 @@ class PreviewRenderer {
7171
private val font14MediumMetrics: FontMetrics = image.graphics.getFontMetrics(font14Medium)
7272
private val font11BlackMetrics: FontMetrics = image.graphics.getFontMetrics(font11Black)
7373

74-
private val font16BoldHeight: Int = font16BoldMetrics.height
75-
private val font16RegularHeight: Int = font16RegularMetrics.ascent
76-
private val font14BoldHeight: Int = font14BoldMetrics.height
77-
private val font14MediumHeight: Int = font14MediumMetrics.height
7874
private val font11BlackHeight: Int = font11BlackMetrics.height
7975

8076
private val font16BoldBaseline: Int = font16BoldMetrics.maxAscent + font16BoldMetrics.leading
@@ -83,16 +79,12 @@ class PreviewRenderer {
8379
private val font14MediumBaseline: Int = font14MediumMetrics.maxAscent + font14MediumMetrics.leading
8480
private val font11BlackBaseline: Int = font11BlackMetrics.maxAscent + font11BlackMetrics.leading
8581

86-
private val font16BoldMaxHeight: Int = font16BoldMetrics.maxAscent + font16BoldMetrics.leading + font16BoldMetrics.maxDescent
87-
private val font16RegularMaxHeight: Int = font16RegularMetrics.maxAscent + font16RegularMetrics.leading + font16RegularMetrics.maxDescent
8882
private val font14BoldMaxHeight: Int = font14BoldMetrics.maxAscent + font14BoldMetrics.leading + font14BoldMetrics.maxDescent
8983
private val font14MediumMaxHeight: Int = font14MediumMetrics.maxAscent + font14MediumMetrics.leading + font14MediumMetrics.maxDescent
90-
private val font11BlackMaxHeight: Int = font11BlackMetrics.maxAscent + font11BlackMetrics.leading + font11BlackMetrics.maxDescent
9184

9285
@Synchronized
9386
fun draw(force: Boolean = false): ModifiedImage {
94-
val component = ApplicationComponent.instance
95-
val context = RenderContext(component.source, component.data, Renderer.Mode.PREVIEW)
87+
val context = RenderContext(applicationComponent.source, applicationComponent.data, Renderer.Mode.PREVIEW)
9688
val renderer = type.createRenderer(context)
9789
val presence = renderer.render()
9890

@@ -106,7 +98,7 @@ class PreviewRenderer {
10698
private var lastAvatarEmpty = true
10799

108100
fun draw(image: BufferedImage, force: Boolean): Boolean {
109-
val user = RichPresenceService.instance.user
101+
val user = richPresenceService.user
110102

111103
val avatar = when {
112104
user != lastUser -> {
@@ -214,7 +206,7 @@ class PreviewRenderer {
214206

215207
font = font14Bold
216208
color = whiteTranslucent80
217-
drawString(ApplicationComponent.instance.data.name, indentation + 3, sectionStart + font14BoldBaseline)
209+
drawString(applicationComponent.data.name, indentation + 3, sectionStart + font14BoldBaseline)
218210
}
219211
}
220212

plugin/src/main/kotlin/com/almightyalpaca/jetbrains/plugins/discord/plugin/listeners/DocumentListener.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
package com.almightyalpaca.jetbrains.plugins.discord.plugin.listeners
1818

19-
import com.almightyalpaca.jetbrains.plugins.discord.plugin.components.ApplicationComponent
19+
import com.almightyalpaca.jetbrains.plugins.discord.plugin.components.applicationComponent
2020
import com.almightyalpaca.jetbrains.plugins.discord.plugin.logging.Logging
2121
import com.intellij.openapi.editor.EditorFactory
2222
import com.intellij.openapi.editor.event.DocumentEvent
@@ -35,7 +35,7 @@ class DocumentListener : com.intellij.openapi.editor.event.DocumentListener, Pro
3535
val editors = EditorFactory.getInstance().getEditors(document)
3636
val file = FileDocumentManager.getInstance().getFile(document)
3737

38-
ApplicationComponent.instance.app {
38+
applicationComponent.app {
3939
for (editor in editors) {
4040
update(editor.project) {
4141
update(file) {

plugin/src/main/kotlin/com/almightyalpaca/jetbrains/plugins/discord/plugin/listeners/EditorMouseListener.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
package com.almightyalpaca.jetbrains.plugins.discord.plugin.listeners
1818

19-
import com.almightyalpaca.jetbrains.plugins.discord.plugin.components.ApplicationComponent
19+
import com.almightyalpaca.jetbrains.plugins.discord.plugin.components.applicationComponent
2020
import com.almightyalpaca.jetbrains.plugins.discord.plugin.logging.Logging
2121
import com.intellij.openapi.editor.event.EditorMouseEvent
2222
import com.intellij.openapi.fileEditor.FileDocumentManager
@@ -29,7 +29,7 @@ class EditorMouseListener : com.intellij.openapi.editor.event.EditorMouseListene
2929
val project = event.editor.project
3030
val file = FileDocumentManager.getInstance().getFile(event.editor.document)
3131

32-
ApplicationComponent.instance.app {
32+
applicationComponent.app {
3333
update(project) {
3434
update(file) {
3535
accessedAt = OffsetDateTime.now()

plugin/src/main/kotlin/com/almightyalpaca/jetbrains/plugins/discord/plugin/listeners/FileDocumentManagerListener.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
package com.almightyalpaca.jetbrains.plugins.discord.plugin.listeners
1818

19-
import com.almightyalpaca.jetbrains.plugins.discord.plugin.components.ApplicationComponent
19+
import com.almightyalpaca.jetbrains.plugins.discord.plugin.components.applicationComponent
2020
import com.almightyalpaca.jetbrains.plugins.discord.plugin.logging.Logging
2121
import com.intellij.openapi.editor.Document
2222
import com.intellij.openapi.editor.EditorFactory
@@ -34,7 +34,7 @@ class FileDocumentManagerListener : com.intellij.openapi.fileEditor.FileDocument
3434
val editors = EditorFactory.getInstance().getEditors(document)
3535
val file = FileDocumentManager.getInstance().getFile(document)
3636

37-
ApplicationComponent.instance.app {
37+
applicationComponent.app {
3838
for (editor in editors) {
3939
update(editor.project) {
4040
update(file) {

plugin/src/main/kotlin/com/almightyalpaca/jetbrains/plugins/discord/plugin/listeners/FileEditorManagerListener.kt

+4-4
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
package com.almightyalpaca.jetbrains.plugins.discord.plugin.listeners
1818

19-
import com.almightyalpaca.jetbrains.plugins.discord.plugin.components.ApplicationComponent
19+
import com.almightyalpaca.jetbrains.plugins.discord.plugin.components.applicationComponent
2020
import com.almightyalpaca.jetbrains.plugins.discord.plugin.logging.Logging
2121
import com.intellij.openapi.fileEditor.FileEditorManager
2222
import com.intellij.openapi.fileEditor.FileEditorManagerEvent
@@ -32,7 +32,7 @@ class FileEditorManagerListener : FileEditorManagerListener {
3232

3333
val project = source.project
3434

35-
ApplicationComponent.instance.app {
35+
applicationComponent.app {
3636
update(project) {
3737
add(file)
3838
}
@@ -44,7 +44,7 @@ class FileEditorManagerListener : FileEditorManagerListener {
4444

4545
val project = source.project
4646

47-
ApplicationComponent.instance.app {
47+
applicationComponent.app {
4848
update(project) {
4949
remove(file)
5050
}
@@ -56,7 +56,7 @@ class FileEditorManagerListener : FileEditorManagerListener {
5656

5757
val project = event.manager.project
5858

59-
ApplicationComponent.instance.app {
59+
applicationComponent.app {
6060
update(project) {
6161
update(event.newFile) {
6262
accessedAt = OffsetDateTime.now()

plugin/src/main/kotlin/com/almightyalpaca/jetbrains/plugins/discord/plugin/listeners/VirtualFileListener.kt

+4-4
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
package com.almightyalpaca.jetbrains.plugins.discord.plugin.listeners
1818

19-
import com.almightyalpaca.jetbrains.plugins.discord.plugin.components.ApplicationComponent
19+
import com.almightyalpaca.jetbrains.plugins.discord.plugin.components.applicationComponent
2020
import com.almightyalpaca.jetbrains.plugins.discord.plugin.logging.Logging
2121
import com.intellij.openapi.editor.EditorFactory
2222
import com.intellij.openapi.fileEditor.FileDocumentManager
@@ -39,7 +39,7 @@ class VirtualFileListener : com.intellij.openapi.vfs.VirtualFileListener {
3939
document?.let {
4040
val editors = EditorFactory.getInstance().getEditors(document)
4141

42-
ApplicationComponent.instance.app {
42+
applicationComponent.app {
4343
for (editor in editors) {
4444
update(editor.project) {
4545
update(file) {
@@ -66,7 +66,7 @@ class VirtualFileListener : com.intellij.openapi.vfs.VirtualFileListener {
6666
document?.let {
6767
val editors = EditorFactory.getInstance().getEditors(document)
6868

69-
ApplicationComponent.instance.app {
69+
applicationComponent.app {
7070
for (editor in editors) {
7171
update(editor.project) {
7272
remove(file)
@@ -87,7 +87,7 @@ class VirtualFileListener : com.intellij.openapi.vfs.VirtualFileListener {
8787
document?.let {
8888
val editors = EditorFactory.getInstance().getEditors(document)
8989

90-
ApplicationComponent.instance.app {
90+
applicationComponent.app {
9191
for (editor in editors) {
9292
update(editor.project) {
9393
update(file) {

plugin/src/main/kotlin/com/almightyalpaca/jetbrains/plugins/discord/plugin/logging/Logger.kt

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package com.almightyalpaca.jetbrains.plugins.discord.plugin.logging
1818

19+
// TODO: proper logging
1920
abstract class Logger {
2021
var enabled: Boolean = System.getenv("com.almightyalpaca.jetbrains.plugins.discord.plugin.logging") == "true"
2122

plugin/src/main/kotlin/com/almightyalpaca/jetbrains/plugins/discord/plugin/notifications/ApplicationNotificationComponent .kt

+2-3
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,9 @@
1616

1717
package com.almightyalpaca.jetbrains.plugins.discord.plugin.notifications
1818

19-
import com.almightyalpaca.jetbrains.plugins.discord.plugin.utils.getComponent
19+
import com.almightyalpaca.jetbrains.plugins.discord.plugin.utils.lazyComponent
2020
import com.intellij.openapi.components.BaseComponent
2121

2222
interface ApplicationNotificationComponent : BaseComponent
2323

24-
val notifications: ApplicationNotificationComponent
25-
get() = getComponent(ApplicationNotificationComponent::class)
24+
val notifications: ApplicationNotificationComponent by lazyComponent()

plugin/src/main/kotlin/com/almightyalpaca/jetbrains/plugins/discord/plugin/notifications/ApplicationNotificationSettings.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616

1717
package com.almightyalpaca.jetbrains.plugins.discord.plugin.notifications
1818

19+
import com.almightyalpaca.jetbrains.plugins.discord.plugin.utils.lazyService
1920
import com.intellij.openapi.components.PersistentStateComponent
20-
import com.intellij.openapi.components.ServiceManager
2121
import com.intellij.openapi.components.State
2222
import com.intellij.openapi.components.Storage
2323
import com.intellij.util.xmlb.XmlSerializerUtil
@@ -33,5 +33,5 @@ class ApplicationNotificationSettings : PersistentStateComponent<ApplicationNoti
3333
}
3434
}
3535

36-
val notificationSettings: ApplicationNotificationSettings
37-
get() = ServiceManager.getService(ApplicationNotificationSettings::class.java)
36+
val notificationSettings: ApplicationNotificationSettings by lazyService()
37+

plugin/src/main/kotlin/com/almightyalpaca/jetbrains/plugins/discord/plugin/notifications/ProjectNotificationComponent.kt

+5
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@
1616

1717
package com.almightyalpaca.jetbrains.plugins.discord.plugin.notifications
1818

19+
import com.almightyalpaca.jetbrains.plugins.discord.plugin.utils.getComponent
1920
import com.intellij.openapi.components.ProjectComponent
21+
import com.intellij.openapi.project.Project
2022

2123
interface ProjectNotificationComponent : ProjectComponent
24+
25+
val Project.notifications: ProjectNotificationComponent
26+
get() = this.getComponent()

0 commit comments

Comments
 (0)