You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: markup.go
    path of file: ./repos/dry/ui
    
    the code of the file until where you have to start completion: package ui

import (
	"regexp"
	"strings"

	"github.com/gdamore/tcell/termbox"
)

// SupportedTags maps supported tags to a tcell.Attribute
var SupportedTags = supportedTagsRegexp()
var tagsToAttributeMap = tags()

func supportedTagsRegexp() *regexp.Regexp {
	arr := []string{}

	for tag := range tagsToAttributeMap {
		arr = append(arr, `</?`+tag+`>`)
	}

	return regexp.MustCompile(strings.Join(arr, `|`))
}

// tags returns regular expression that matches all possible tags
// supported by the markup, i.e. </?black>|</?red>| ... |<?b>| ... |</?ri
    
func tags() map[string]termbox.Attribute {
	//Due to how markup is currently being used, the tag character lengh must be
	//the same for all color tags (the magic number is 5, because white) to avoid,
	//text alignment problems, hence the strange tag names.

	//TODO Figure out a way to use markups and the ColorTheme. Right now a tag
	//value corresponds to an specific color, and there are cases might now even
	//fit the description (so green is not really green but something that fits the DarkTheme).
	tags := make(map[string]termbox.Attribute)
	tags[`/`] = termbox.Attribute(ColorWhite)
	tags[`black`] = termbox.ColorBlack
	tags[`red`] = termbox.ColorRed
	tags[`red00`] = termbox.ColorRed
	tags[`green`] = termbox.Attribute(Color190)
	tags[`yellow`] = termbox.ColorYellow
	tags[`blue`] = termbox.Attribute(Color188)
	tags[`magenta`] = termbox.ColorMagenta
	tags[`cyan`] = termbox.ColorCyan
	tags[`cyan0`] = termbox.Attribute(Color181)
	tags[`white`] = termbox.Attribute(Color255)
	tags[`grey`] = termbox.Attribute(Grey)
	tags[`grey2`] = termbox.Attribute(Grey2)
	tags[`darkgrey`] = termbox.Attribute(Darkgrey)
	tags[`b`] = termbox.AttrBold
	tags[`u`] = termbox.AttrUnderline
	tags[`r`] = termbox.AttrReverse
	return tags
}