solarized-emacs

a fork of Bozhidar Batsov's solarized-emacs
git clone https://git.trogloxene.org/solarized-emacs.git
Log | Files | Refs | README

commit 281abb3c419bbe7512613db949cb5197d38b6781
parent cfd2c97ba0eb20561af0be857e0fd85e1533afe4
Author: Thomas Frössman <thomasf@jossystem.se>
Date:   Wed, 20 Nov 2019 18:12:56 +0100

colorlab: refactor move emacs specific functionality to own package

Diffstat:
Mcolorlab/main.go | 79+++----------------------------------------------------------------------------
Acolorlab/pkg/emacs/emacs.go | 83+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mcolorlab/pkg/generator/accentpair.go | 1-
3 files changed, 86 insertions(+), 77 deletions(-)

diff --git a/colorlab/main.go b/colorlab/main.go @@ -1,19 +1,13 @@ package main import ( - "bufio" - "bytes" "flag" "fmt" - "io" - "io/ioutil" - "log" "os" - "strconv" - "strings" "github.com/bbatsov/solarized-emacs/colorlab/pkg/colorlab" "github.com/bbatsov/solarized-emacs/colorlab/pkg/colors" + "github.com/bbatsov/solarized-emacs/colorlab/pkg/emacs" "github.com/bbatsov/solarized-emacs/colorlab/pkg/generator" "github.com/bbatsov/solarized-emacs/colorlab/pkg/sol" ) @@ -37,12 +31,12 @@ func main() { for _, pal := range palettes { fmt.Println(pal.Name) nc := pal.Generate() - PrintAlist(os.Stdout, nc, 0) + emacs.PrintAlist(os.Stdout, nc, 0) // nc.FilterPrefix("base").PrintAlist(os.Stdout, 0) // Merge(nc.FilterSuffix("-d"), oldDarkAccents.NamedColors().WithSuffix("-do")).PrintAlist(os.Stdout, 0) // Merge(nc.FilterSuffix("-l"), oldLightAccents.NamedColors().WithSuffix("-lo")).PrintAlist(os.Stdout, 0) if !opts.NoElispUpdate { - rewriteTheme(nc, pal.Name) + emacs.RewritePalette(nc, pal.Name) } } fmt.Println("\n-----\n") @@ -293,70 +287,3 @@ var ( }, } ) - -func rewriteTheme(nc colorlab.NamedColors, paletteName string) { - - var dst bytes.Buffer - - file, err := os.Open("../solarized-palettes.el") - if err != nil { - log.Fatal(err) - } - defer file.Close() - - scanner := bufio.NewScanner(file) - var insideReplacement bool - for scanner.Scan() { - txt := scanner.Text() - if insideReplacement && strings.HasSuffix(txt, ";; palette end") { - insideReplacement = false - } - if !insideReplacement { - dst.WriteString(txt) - dst.WriteString("\n") - - } - if strings.HasSuffix(txt, fmt.Sprintf(";; %s palette", paletteName)) { - insideReplacement = true - PrintAlist(&dst, nc, 4) - } - } - - if err := scanner.Err(); err != nil { - log.Fatal(err) - } - - file.Close() - - ioutil.WriteFile("../solarized-palettes.el", dst.Bytes(), 0x776) - -} - -// PrintAlist prints the named colors list in a way that is compatible with solarized-palettes.el. -func PrintAlist(w io.Writer, n colorlab.NamedColors, indent int) (int, error) { - keys := sol.OrderedKeys(n) - var longestKey int - for _, n := range keys { - l := len(n) - if l > longestKey { - longestKey = l - } - } - longestKey = longestKey - prefix := "" - for i := 0; i < indent; i++ { - prefix += " " - - } - var nt int - - for _, name := range keys { - n, err := fmt.Fprintf(w, "%s(%-"+strconv.Itoa(longestKey)+"s . \"%s\")\n", prefix, name, n[name]) - n = n + nt - if err != nil { - return nt, err - } - - } - return nt, nil -} diff --git a/colorlab/pkg/emacs/emacs.go b/colorlab/pkg/emacs/emacs.go @@ -0,0 +1,83 @@ +// Package emacs contains features specific for generating elisp themes +package emacs + +import ( + "bufio" + "bytes" + "fmt" + "io" + "io/ioutil" + "log" + "os" + "strconv" + "strings" + + "github.com/bbatsov/solarized-emacs/colorlab/pkg/colorlab" + "github.com/bbatsov/solarized-emacs/colorlab/pkg/sol" +) + +// PrintAlist prints the named colors list in a way that is compatible with solarized-palettes.el. +func PrintAlist(w io.Writer, n colorlab.NamedColors, indent int) (int, error) { + keys := sol.OrderedKeys(n) + var longestKey int + for _, n := range keys { + l := len(n) + if l > longestKey { + longestKey = l + } + } + longestKey = longestKey + prefix := "" + for i := 0; i < indent; i++ { + prefix += " " + + } + var nt int + + for _, name := range keys { + n, err := fmt.Fprintf(w, "%s(%-"+strconv.Itoa(longestKey)+"s . \"%s\")\n", prefix, name, n[name]) + n = n + nt + if err != nil { + return nt, err + } + + } + return nt, nil +} + +func RewritePalette(nc colorlab.NamedColors, paletteName string) { + + var dst bytes.Buffer + + file, err := os.Open("../solarized-palettes.el") + if err != nil { + log.Fatal(err) + } + defer file.Close() + + scanner := bufio.NewScanner(file) + var insideReplacement bool + for scanner.Scan() { + txt := scanner.Text() + if insideReplacement && strings.HasSuffix(txt, ";; palette end") { + insideReplacement = false + } + if !insideReplacement { + dst.WriteString(txt) + dst.WriteString("\n") + + } + if strings.HasSuffix(txt, fmt.Sprintf(";; %s palette", paletteName)) { + insideReplacement = true + PrintAlist(&dst, nc, 4) + } + } + + if err := scanner.Err(); err != nil { + log.Fatal(err) + } + + file.Close() + ioutil.WriteFile("../solarized-palettes.el", dst.Bytes(), 0x776) + +} diff --git a/colorlab/pkg/generator/accentpair.go b/colorlab/pkg/generator/accentpair.go @@ -6,7 +6,6 @@ import ( "github.com/bbatsov/solarized-emacs/colorlab/pkg/colorlab" "github.com/bbatsov/solarized-emacs/colorlab/pkg/sol" - "github.com/lucasb-eyer/go-colorful" )