2.5 KiB
id | title | sidebar_label |
---|---|---|
contributing-segment | Add Segment | Add Segment |
Create the logic
Add a new file following this convention: new_segment.go
.
Ensure new
is a single verb indicating the context the segment renders.
You can use the following template as a guide.
package main
type new struct {
props *properties
env environmentInfo
}
const (
//NewProp switches something
NewProp Property = "newprop"
)
func (n *new) enabled() bool {
true
}
func (n *new) string() string {
newText := n.props.getString(NewProp, "n00b")
return newText
}
func (n *new) init(props *properties, env environmentInfo) {
n.props = props
n.env = env
}
For each segment, there's a single test file ensuring the functionality going forward. The convention
is new_segment_test.go
, have a look at existing segment tests for inspiration.
Create a name for your Segment
segment.go
contains the list of available SegmentType
's, which gives them a name we can map from the
.json
themes.
Add your segment.
//New is brand new
New SegmentType = "new"
Add the SegmentType mapping
Map your SegmentType
to your Segment in the mapSegmentWithWriter
function.
New: &new{},
Test your functionality
Even with unit tests, it's a good idea to build and validate the changes.
go build -o $GOPATH/bin/oh-my-posh
Add the documentation
Create a new markdown
file underneath the docs/docs
folder called new-segment.md
.
Use the following template as a guide.
---
id: new
title: New
sidebar_label: New
---
## What
Display something new.
## Sample Configuration
```json
{
"type": "new",
"style": "powerline",
"powerline_symbol": "",
"foreground": "#193549",
"background": "#ffeb3b",
"properties": {
"newprop": "w00p"
}
}
```
## Properties
- newprop: `string` - the new text to show
Map the new documentation in the sidebar
Open sidebars.js
and add your document id (new
) to the items of the Segments category.
Create a pull request
And be patient, I'm going as fast as I can 🏎