mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
OPENIDE #79 Reimplement the external link filtering mechanism from OpenIDE
(cherry picked from commit 3f478908c068e5506ead6a71c0933d5696b4b4c0) (cherry picked from commit9a3394e66a) (cherry picked from commita1499f3fe3) (cherry picked from commita16d707a0e) (cherry picked from commit261c25ad70)
This commit is contained in:
Generated
+2
-3
@@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false">
|
||||
<component name="Encoding" defaultCharsetForPropertiesFiles="UTF-8">
|
||||
<file url="PROJECT" charset="UTF-8" />
|
||||
</component>
|
||||
</project>
|
||||
|
||||
</project>
|
||||
@@ -65,6 +65,8 @@
|
||||
serviceImplementation="com.intellij.codeInsight.completion.BaseCompletionService"/>
|
||||
<applicationService serviceInterface="com.intellij.ide.plugins.PluginUtil"
|
||||
serviceImplementation="com.intellij.ide.plugins.PluginUtilImpl"/>
|
||||
<applicationService serviceInterface="ru.openide.io.OpenIdePluginUtil"
|
||||
serviceImplementation="com.intellij.util.OpenIdePluginUtilImpl"/>
|
||||
<applicationService serviceInterface="com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReferenceCompletion"
|
||||
serviceImplementation="com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReferenceCompletionImpl"/>
|
||||
<applicationService serviceImplementation="com.intellij.find.impl.FindSettingsImpl$FindRecents"/>
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
// Copyright (c) Haulmont 2025. All Rights Reserved.
|
||||
// Use is subject to license terms.
|
||||
package com.intellij.util
|
||||
|
||||
import com.intellij.ide.plugins.PluginManagerCore
|
||||
import com.intellij.ide.plugins.PluginUtil
|
||||
import com.intellij.openapi.extensions.PluginId
|
||||
import ru.openide.io.OpenIdePluginUtil
|
||||
|
||||
class OpenIdePluginUtilImpl : OpenIdePluginUtil {
|
||||
override fun findNonBundledPluginId(t: Throwable): PluginId? {
|
||||
val pluginId = PluginUtil.getInstance().findPluginId(t) ?: return null
|
||||
val idString = pluginId.idString
|
||||
if (idString == "ru.openide.docker" || idString == "com.haulmont.amplicode") return pluginId
|
||||
|
||||
val pluginDescriptor = PluginManagerCore.getPlugin(pluginId) ?: return null
|
||||
if (pluginDescriptor.isBundled) return null
|
||||
return pluginId
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
# Copyright (c) Haulmont 2025. All Rights Reserved.
|
||||
# Use is subject to license terms.
|
||||
access.to.untrusted.source=Access to an untrusted source
|
||||
allow.access=Allow access
|
||||
@@ -0,0 +1,2 @@
|
||||
access.to.untrusted.source=Доступ к неразрешенному источнику
|
||||
allow.access=Разрешить доступ
|
||||
@@ -21,6 +21,8 @@ import com.intellij.util.net.NetUtils;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import ru.openide.io.StubUrlConnection;
|
||||
import ru.openide.io.WhiteListUrls;
|
||||
|
||||
import javax.net.ssl.HostnameVerifier;
|
||||
import javax.net.ssl.HttpsURLConnection;
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
// Copyright (c) Haulmont 2025. All Rights Reserved.
|
||||
// Use is subject to license terms.
|
||||
package ru.openide.io
|
||||
|
||||
import com.intellij.DynamicBundle
|
||||
import org.jetbrains.annotations.Nls
|
||||
import org.jetbrains.annotations.NonNls
|
||||
import org.jetbrains.annotations.PropertyKey
|
||||
|
||||
@NonNls
|
||||
private const val BUNDLE = "messages.OpenIdeBundle"
|
||||
|
||||
object OpenIdeBundle {
|
||||
private val INSTANCE = DynamicBundle(OpenIdeBundle::class.java, BUNDLE)
|
||||
|
||||
fun message(key: @PropertyKey(resourceBundle = BUNDLE) String, vararg params: Any): @Nls String {
|
||||
return INSTANCE.getMessage(key, *params)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
// Copyright (c) Haulmont 2025. All Rights Reserved.
|
||||
// Use is subject to license terms.
|
||||
package ru.openide.io
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager
|
||||
import com.intellij.openapi.components.*
|
||||
import com.intellij.util.xmlb.annotations.CollectionBean
|
||||
|
||||
@Service(Service.Level.APP)
|
||||
@State(name = "OpenIdePersistentUrlStorage", storages = [Storage("openIdeUrlStorage.xml")])
|
||||
class OpenIdePersistentUrlStorage: SimplePersistentStateComponent<PersistentUrlStorageState>(PersistentUrlStorageState()) {
|
||||
|
||||
companion object {
|
||||
fun getInstance(): OpenIdePersistentUrlStorage {
|
||||
return ApplicationManager.getApplication().getService(OpenIdePersistentUrlStorage::class.java)
|
||||
}
|
||||
}
|
||||
|
||||
fun getUrls(): MutableList<String> {
|
||||
return state.urls
|
||||
}
|
||||
}
|
||||
|
||||
class PersistentUrlStorageState : BaseState() {
|
||||
@get:CollectionBean
|
||||
val urls: MutableList<String> by list()
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
// Copyright (c) Haulmont 2025. All Rights Reserved.
|
||||
// Use is subject to license terms.
|
||||
package ru.openide.io
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager
|
||||
import com.intellij.openapi.extensions.PluginId
|
||||
|
||||
interface OpenIdePluginUtil {
|
||||
companion object {
|
||||
fun getInstance(): OpenIdePluginUtil {
|
||||
return ApplicationManager.getApplication().getService(OpenIdePluginUtil::class.java)
|
||||
}
|
||||
}
|
||||
|
||||
fun findNonBundledPluginId(t: Throwable): PluginId?
|
||||
}
|
||||
Reference in New Issue
Block a user