Skip to content

Commit 83b40ba

Browse files
authored
Merge pull request #119 from liudongmiao/cwm
code with me support, should close #52
2 parents 2f02b30 + 5ece2fe commit 83b40ba

File tree

8 files changed

+75
-2
lines changed

8 files changed

+75
-2
lines changed

plugin/build.gradle.kts

+7
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,12 @@ tasks {
6464
freeCompilerArgs += listOf("-Xopt-in=kotlin.RequiresOptIn", "-Xjvm-default=all")
6565
}
6666
}
67+
jar {
68+
exclude("com/jetbrains/**")
69+
}
70+
instrumentedJar {
71+
exclude("com/jetbrains/**")
72+
}
6773
changelog {
6874
version = "${rootProject.version}"
6975
path = Paths.get(projectDir.path, "..", "CHANGELOG.md").toString()
@@ -103,6 +109,7 @@ fun extractPluginDescription(): String {
103109

104110
val copyWebViewBuildResults by tasks.registering(Copy::class) {
105111
from(webView)
112+
exclude("tmp/**")
106113
into(project.layout.buildDirectory.dir("resources/main/web-view"))
107114
}
108115

plugin/src/main/kotlin/com/firsttimeinforever/intellij/pdf/viewer/ui/editor/PdfFileEditorProvider.kt

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.firsttimeinforever.intellij.pdf.viewer.ui.editor
22

33
import com.firsttimeinforever.intellij.pdf.viewer.lang.PdfFileType
4+
import com.intellij.openapi.diagnostic.logger
45
import com.intellij.openapi.fileEditor.AsyncFileEditorProvider
56
import com.intellij.openapi.fileEditor.FileEditor
67
import com.intellij.openapi.fileEditor.FileEditorPolicy
@@ -12,7 +13,8 @@ class PdfFileEditorProvider : AsyncFileEditorProvider, DumbAware {
1213
override fun getEditorTypeId() = "PDF"
1314

1415
override fun accept(project: Project, file: VirtualFile): Boolean {
15-
return file.fileType == PdfFileType
16+
logger.debug("check accept, file: $file")
17+
return file.fileType == PdfFileType;
1618
}
1719

1820
override fun createEditor(project: Project, file: VirtualFile): FileEditor {
@@ -26,4 +28,8 @@ class PdfFileEditorProvider : AsyncFileEditorProvider, DumbAware {
2628
override fun build(): FileEditor = PdfFileEditor(project, file)
2729
}
2830
}
31+
32+
companion object {
33+
private val logger = logger<PdfFileEditorProvider>()
34+
}
2935
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.firsttimeinforever.intellij.pdf.viewer.ui.editor
2+
3+
import com.firsttimeinforever.intellij.pdf.viewer.lang.PdfFileType
4+
import com.intellij.openapi.diagnostic.logger
5+
import com.intellij.openapi.fileEditor.ex.FileEditorWithProvider
6+
import com.intellij.openapi.project.Project
7+
import com.intellij.openapi.vfs.VirtualFile
8+
import com.jetbrains.rd.ide.model.FileEditorModel
9+
import com.jetbrains.rd.util.lifetime.Lifetime
10+
import com.jetbrains.rdclient.fileEditors.FrontendFileEditorModelHandler
11+
12+
/**
13+
* Created by liudongmiao on 2024-09-30.
14+
*/
15+
class PdfFrontendFileEditorModelHandler : FrontendFileEditorModelHandler {
16+
override fun accept(project: Project, file: VirtualFile, model: FileEditorModel): Boolean {
17+
logger.debug("check accept, file: $file")
18+
return file.fileType == PdfFileType;
19+
}
20+
21+
override fun createEditorWithProvider(project: Project, lifetime: Lifetime, file: VirtualFile, model: FileEditorModel): FileEditorWithProvider {
22+
val provider = PdfFileEditorProvider()
23+
return FileEditorWithProvider(provider.createEditor(project, file), provider)
24+
}
25+
26+
companion object {
27+
private val logger = logger<PdfFrontendFileEditorModelHandler>()
28+
}
29+
}

plugin/src/main/kotlin/com/firsttimeinforever/intellij/pdf/viewer/ui/editor/view/PdfJcefPreviewController.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ class PdfJcefPreviewController(val project: Project, val virtualFile: VirtualFil
113113
viewProperties = it.properties
114114
// TODO: Move to dedicated in-memory stylesheet and serve it as a resource
115115
updateViewTheme(collectThemeColors())
116-
pipe.send(IdeMessages.SynctexAvailability(virtualFile.isSynctexFileAvailable() && isSynctexInstalled()))
116+
pipe.send(IdeMessages.SynctexAvailability(virtualFile.parent != null && virtualFile.isSynctexFileAvailable() && isSynctexInstalled()))
117117
viewLoaded = true
118118
firstLoad = false
119119
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.jetbrains.rd.ide.model
2+
3+
/**
4+
* hidden api of code with me client
5+
* <br>
6+
* Created by liudongmiao on 2024-09-30.
7+
*/
8+
class FileEditorModel
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.jetbrains.rdclient.fileEditors
2+
3+
import com.intellij.openapi.fileEditor.ex.FileEditorWithProvider
4+
import com.intellij.openapi.project.Project
5+
import com.intellij.openapi.vfs.VirtualFile
6+
import com.jetbrains.rd.ide.model.FileEditorModel
7+
import com.jetbrains.rd.util.lifetime.Lifetime
8+
9+
/**
10+
* hidden api of code with me client
11+
* <br>
12+
* Created by liudongmiao on 2024-09-30.
13+
*/
14+
interface FrontendFileEditorModelHandler {
15+
fun accept(project: Project, file: VirtualFile, model: FileEditorModel): Boolean
16+
fun createEditorWithProvider(project: Project, lifetime: Lifetime, file: VirtualFile, model: FileEditorModel): FileEditorWithProvider
17+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<idea-plugin>
2+
<extensions defaultExtensionNs="com.intellij">
3+
<rdclient.fileEditorModelHandler implementation="com.firsttimeinforever.intellij.pdf.viewer.ui.editor.PdfFrontendFileEditorModelHandler" order="first" />
4+
</extensions>
5+
</idea-plugin>

plugin/src/main/resources/META-INF/plugin.xml

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

88
<depends>com.intellij.modules.platform</depends>
99
<depends optional="true" config-file="texify-idea.xml">nl.rubensten.texifyidea</depends>
10+
<depends optional="true" config-file="cwm.xml">com.intellij.jetbrains.client</depends>
1011

1112
<extensions defaultExtensionNs="com.intellij">
1213
<fileType name="PDF"

0 commit comments

Comments
 (0)