Revert "InlayHintsProvider -> InlayHintProvider"

This reverts commit 0669fc60 - backward incompatible change

GitOrigin-RevId: 0d35822ffaea2e2ad34d1db21ff00444a6dc4ff5
This commit is contained in:
Roman.Ivanov
2019-07-02 06:52:16 +03:00
committed by intellij-monorepo-bot
parent 719efa09a0
commit 6742e9aab5
6 changed files with 12 additions and 11 deletions
@@ -16,7 +16,7 @@ import javax.swing.JPanel
import javax.swing.event.DocumentEvent
import javax.swing.event.DocumentListener
class MethodChainsInlayProvider : InlayHintProvider<MethodChainsInlayProvider.Settings> {
class MethodChainsInlayProvider : InlayHintsProvider<MethodChainsInlayProvider.Settings> {
override fun getCollectorFor(file: PsiFile, editor: Editor, settings: Settings, sink: InlayHintsSink) =
object : FactoryInlayHintsCollector(editor) {
override fun collect(element: PsiElement, editor: Editor, sink: InlayHintsSink) : Boolean {
@@ -10,7 +10,7 @@ import com.intellij.util.xmlb.annotations.Property
import org.jetbrains.annotations.Nls
import javax.swing.JComponent
object InlayHintsProviderExtension : LanguageExtension<InlayHintProvider<*>>("com.intellij.codeInsight.inlayProvider")
object InlayHintsProviderExtension : LanguageExtension<InlayHintsProvider<*>>("com.intellij.codeInsight.inlayProvider")
/**
* Provider of inlay hints for single language. If you need to create hints for multiple languages, please use InlayHintsProviderFactory.
@@ -20,7 +20,7 @@ object InlayHintsProviderExtension : LanguageExtension<InlayHintProvider<*>>("co
* @see com.intellij.openapi.editor.InlayModel.addInlineElement
* @see com.intellij.openapi.editor.InlayModel.addBlockElement
*/
interface InlayHintProvider<T : Any> {
interface InlayHintsProvider<T : Any> {
/**
* If this method is called, provider is enabled for this file
* Warning! Your collector should not use any settings besides [settings]
@@ -6,7 +6,7 @@ import com.intellij.openapi.extensions.ExtensionPointName
import com.intellij.openapi.project.Project
/**
* Factory for [InlayHintProvider], can be used to support multiple languages with a single type of inlay hints.
* Factory for [InlayHintsProvider], can be used to support multiple languages with a single type of inlay hints.
*/
interface InlayHintsProviderFactory {
fun getProvidersInfo(project: Project): List<ProviderInfo<out Any>>
@@ -19,6 +19,6 @@ interface InlayHintsProviderFactory {
class ProviderInfo<T : Any>(
val language: Language,
val provider: InlayHintProvider<T>
val provider: InlayHintsProvider<T>
)
@@ -20,7 +20,7 @@ class ProviderWithSettings<T: Any>(
) {
val configurable by lazy { provider.createConfigurable(settings) }
val provider: InlayHintProvider<T>
val provider: InlayHintsProvider<T>
get() = info.provider
val language: Language
get() = info.language
@@ -42,16 +42,16 @@ fun <T : Any> ProviderWithSettings<T>.getCollectorWrapperFor(file: PsiFile, edit
return CollectorWithSettings(collector, key, language, sink)
}
internal fun <T : Any> InlayHintProvider<T>.withSettings(language: Language, config: InlayHintsSettings): ProviderWithSettings<T> {
internal fun <T : Any> InlayHintsProvider<T>.withSettings(language: Language, config: InlayHintsSettings): ProviderWithSettings<T> {
val settings = getActualSettings(config, language)
return ProviderWithSettings(ProviderInfo(language, this), settings)
}
internal fun <T : Any> InlayHintProvider<T>.getActualSettings(config: InlayHintsSettings, language: Language): T {
internal fun <T : Any> InlayHintsProvider<T>.getActualSettings(config: InlayHintsSettings, language: Language): T {
return config.findSettings(key, language, createSettings())
}
internal fun <T: Any> copySettings(from: T, provider: InlayHintProvider<T>): T {
internal fun <T: Any> copySettings(from: T, provider: InlayHintsProvider<T>): T {
val settings = provider.createSettings()
// Workaround to make a deep copy of settings. The other way is to parametrize T with something like
// interface DeepCopyable<T> { fun deepCopy(from: T): T }, but there will be a lot of problems with recursive type bounds
@@ -3,10 +3,11 @@ package com.intellij.codeInsight.hints
import com.intellij.lang.Language
import com.intellij.lang.LanguageExtensionPoint
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.extensions.ExtensionPointName
import com.intellij.openapi.project.Project
private val inlayProviderName = ExtensionPointName<LanguageExtensionPoint<InlayHintProvider<*>>>("com.intellij.codeInsight.inlayProvider")
private val inlayProviderName = ExtensionPointName<LanguageExtensionPoint<InlayHintsProvider<*>>>("com.intellij.codeInsight.inlayProvider")
class SingleLanguageInlayProviderFactory : InlayHintsProviderFactory {
override fun getProvidersInfo(project: Project): List<ProviderInfo<out Any>> {
@@ -645,7 +645,7 @@
</extensionPoint>
<extensionPoint name="codeInsight.inlayProvider" beanClass="com.intellij.lang.LanguageExtensionPoint">
<with attribute="implementationClass" implements="com.intellij.codeInsight.hints.InlayHintProvider"/>
<with attribute="implementationClass" implements="com.intellij.codeInsight.hints.InlayHintsProvider"/>
</extensionPoint>
<extensionPoint qualifiedName="com.intellij.codeInsight.inlayProviderFactory"