Skip to content

Commit 1096c4f

Browse files
Adding the ability to differenitate builtin plugins when listing
1 parent 7492195 commit 1096c4f

File tree

3 files changed

+21
-11
lines changed

3 files changed

+21
-11
lines changed

internal/config/plugin.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ type Plugin struct {
7171
Info *PluginInfo // json file containing info
7272
Srcs []RuntimeFile // lua files
7373
Loaded bool
74-
Default bool // pre-installed plugin
74+
Builtin bool
7575
}
7676

7777
// IsLoaded returns if a plugin is enabled

internal/config/plugin_installer.go

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ type PluginPackage struct {
4242
Author string
4343
Tags []string
4444
Versions PluginVersions
45+
Builtin bool
4546
}
4647

4748
// PluginPackages is a list of PluginPackage instances.
@@ -75,6 +76,9 @@ func (pp *PluginPackage) String() string {
7576
buf := new(bytes.Buffer)
7677
buf.WriteString("Plugin: ")
7778
buf.WriteString(pp.Name)
79+
if pp.Builtin {
80+
buf.WriteString(" (built-in)")
81+
}
7882
buf.WriteRune('\n')
7983
if pp.Author != "" {
8084
buf.WriteString("Author: ")
@@ -334,7 +338,7 @@ func isUnknownCoreVersion() bool {
334338
return err != nil
335339
}
336340

337-
func newStaticPluginVersion(name, version string) *PluginVersion {
341+
func newStaticPluginVersion(name, version string, builtin bool) *PluginVersion {
338342
vers, err := semver.ParseTolerant(version)
339343

340344
if err != nil {
@@ -343,7 +347,8 @@ func newStaticPluginVersion(name, version string) *PluginVersion {
343347
}
344348
}
345349
pl := &PluginPackage{
346-
Name: name,
350+
Name: name,
351+
Builtin: builtin,
347352
}
348353
pv := &PluginVersion{
349354
pack: pl,
@@ -358,15 +363,15 @@ func newStaticPluginVersion(name, version string) *PluginVersion {
358363
func GetInstalledVersions(withCore bool) PluginVersions {
359364
result := PluginVersions{}
360365
if withCore {
361-
result = append(result, newStaticPluginVersion(CorePluginName, util.Version))
366+
result = append(result, newStaticPluginVersion(CorePluginName, util.Version, true))
362367
}
363368

364369
for _, p := range Plugins {
365370
if !p.IsLoaded() {
366371
continue
367372
}
368373
version := GetInstalledPluginVersion(p.Name)
369-
if pv := newStaticPluginVersion(p.Name, version); pv != nil {
374+
if pv := newStaticPluginVersion(p.Name, version, p.Builtin); pv != nil {
370375
result = append(result, pv)
371376
}
372377
}
@@ -604,7 +609,7 @@ func UpdatePlugins(out io.Writer, plugins []string) {
604609
// if no plugins are specified, update all installed plugins.
605610
if len(plugins) == 0 {
606611
for _, p := range Plugins {
607-
if !p.IsLoaded() || p.Default {
612+
if !p.IsLoaded() || p.Builtin {
608613
continue
609614
}
610615
plugins = append(plugins, p.Name)
@@ -613,7 +618,7 @@ func UpdatePlugins(out io.Writer, plugins []string) {
613618

614619
fmt.Fprintln(out, "Checking for plugin updates")
615620
microVersion := PluginVersions{
616-
newStaticPluginVersion(CorePluginName, util.Version),
621+
newStaticPluginVersion(CorePluginName, util.Version, true),
617622
}
618623

619624
var updates = make(PluginDependencies, 0)
@@ -665,8 +670,8 @@ func PluginCommand(out io.Writer, cmd string, args []string) {
665670
for _, plugin := range args {
666671
// check if the plugin exists.
667672
for _, p := range Plugins {
668-
if p.Name == plugin && p.Default {
669-
fmt.Fprintln(out, "Default plugins cannot be removed, but can be disabled via settings.")
673+
if p.Name == plugin && p.Builtin {
674+
fmt.Fprintln(out, "Built-in plugins cannot be removed, but can be disabled via settings.")
670675
continue
671676
}
672677
if p.Name == plugin {
@@ -687,7 +692,11 @@ func PluginCommand(out io.Writer, cmd string, args []string) {
687692
plugins := GetInstalledVersions(false)
688693
fmt.Fprintln(out, "The following plugins are currently installed:")
689694
for _, p := range plugins {
690-
fmt.Fprintf(out, "%s (%s)\n", p.Pack().Name, p.Version)
695+
if p.Pack().Builtin {
696+
fmt.Fprintf(out, "%s (built-in)\n", p.Pack().Name)
697+
} else {
698+
fmt.Fprintf(out, "%s (%s)\n", p.Pack().Name, p.Version)
699+
}
691700
}
692701
case "search":
693702
plugins := SearchPlugin(out, args)

internal/config/rtfiles.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,7 @@ func InitPlugins() {
187187
p.Name = "initlua"
188188
p.DirName = "initlua"
189189
p.Srcs = append(p.Srcs, realFile(initlua))
190+
p.Builtin = false
190191
Plugins = append(Plugins, p)
191192
}
192193

@@ -242,7 +243,7 @@ func InitPlugins() {
242243
p := new(Plugin)
243244
p.Name = d
244245
p.DirName = d
245-
p.Default = true
246+
p.Builtin = true
246247
for _, f := range srcs {
247248
if strings.HasSuffix(f, ".lua") {
248249
p.Srcs = append(p.Srcs, assetFile(filepath.Join(plugdir, d, f)))

0 commit comments

Comments
 (0)