Files
openide/native/repair-utility/helpers/plugins.go
konstantin.annikov 01f61d2d78 [Repair Utility] move to community
GitOrigin-RevId: af0c92f448088c53578857b0e1b84b95c2664a4e
2022-11-09 16:13:29 +00:00

71 lines
2.1 KiB
Go

package helpers
import (
"strconv"
)
type IdeaVersion struct {
SinceBuild string `xml:"since-build,attr"`
UntilBuild string `xml:"until-build,attr"`
}
var disabledPlugins []string
func (plugins *PluginInfoList) ToString() (pluginsAsString string) {
for i, plugin := range *plugins {
pluginsAsString = pluginsAsString + " " + strconv.Itoa(i+1) + ". " + plugin.Name + "\n"
}
return
}
func (plugins *PluginInfoList) Contains(pluginToCheck PluginInfo) bool {
for _, plugin := range *plugins {
if pluginToCheck == plugin {
return true
}
}
return false
}
func (plugins *PluginInfoList) FilterIncompatible() (incompatiblePlugins PluginInfoList) {
ideBuildAsFloat := ConvertBuildNumberToFloat(CurrentIde.GetInfo().BuildNumber)
for _, plugin := range *plugins {
pluginSinceBuildAsFloat := ConvertBuildNumberToFloat(plugin.IdeaVersion.SinceBuild)
pluginUntilBuildAsFloat := ConvertBuildNumberToFloat(plugin.IdeaVersion.UntilBuild)
if ((pluginSinceBuildAsFloat > ideBuildAsFloat) || (pluginUntilBuildAsFloat < ideBuildAsFloat)) && plugin.IsDisabled == false {
incompatiblePlugins = append(incompatiblePlugins, plugin)
}
}
return incompatiblePlugins
}
func (plugins *PluginInfoList) FilterDisabled() (disabledPluginsList PluginInfoList) {
for _, plugin := range *plugins {
if plugin.IsDisabled {
disabledPluginsList = append(disabledPluginsList, plugin)
}
}
return disabledPluginsList
}
func (plugins *PluginInfoList) FilterEnabled() (enabledPluginsList PluginInfoList) {
for _, plugin := range *plugins {
if !plugin.IsDisabled {
enabledPluginsList = append(enabledPluginsList, plugin)
}
}
return enabledPluginsList
}
func (plugins *PluginInfoList) FilterUpdatable() (updatablePlugins PluginInfoList) {
for _, plugin := range *plugins {
if CheckIfPluginHasCompatibleVersion(CurrentIde.Binary, &plugin) {
updatablePlugins = append(updatablePlugins, plugin)
}
}
return
}
func (plugins *PluginInfoList) FilterDeprecated() (deprecatedPlugins PluginInfoList) {
for _, plugin := range *plugins {
if !CheckIfPluginHasCompatibleVersion(CurrentIde.Binary, &plugin) {
deprecatedPlugins = append(deprecatedPlugins, plugin)
}
}
return
}