Back to Oh My Posh

Plastic SCM

website/docs/segments/scm/plastic.mdx

31.1.16.1 KB
Original Source

What

Display Plastic SCM information when in a plastic repository. Also works for subfolders. For maximum compatibility, make sure your cm executable is up-to-date (when branch or status information is incorrect for example).

Sample Configuration

import Config from "@site/src/components/Config.js";

<Config data={{ type: "plastic", style: "powerline", powerline_symbol: "\uE0B0", foreground: "#193549", background: "#ffeb3b", background_templates: [ "{{ if .MergePending }}#006060{{ end }}", "{{ if .Changed }}#FF9248{{ end }}", "{{ if and .Changed .Behind }}#ff4500{{ end }}", "{{ if .Behind }}#B388FF{{ end }}", ], template: "{{ .Selector }}{{ if .Status.Changed }} \uF044 {{ end }}{{ .Status.String }}", }} />

Plastic SCM Icon

If you want to use the icon of Plastic SCM in the segment, then please help me push the icon in this issue by leaving a like!

Options

Fetching information

As doing multiple cm calls can slow down the prompt experience, the status is fetched only when your templates reference one of its fields (.Status, .Behind, .MergePending): fetching is driven entirely by what you render. The fetch_status option no longer exists and is ignored silently in existing configs.

NameTypeDefaultDescription
native_fallbackbooleanfalsewhen set to true and cm.exe is not available when inside a WSL2 shared Windows drive, we will fallback to the native cm executable to fetch data. Not all information can be displayed in this case
status_formatsmap[string]stringa key, value map allowing to override how individual status items are displayed. For example, "status_formats": { "Added": "Added: %d" } will display the added count as Added: 1 instead of +1. See the Status section for available overrides

Icons

Branch

NameTypeDefaultDescription
branch_iconstring\uE0A0the icon to use in front of the git branch name
mapped_branchesobjectcustom glyph/text for specific branches. You can use * at the end as a wildcard character for matching
branch_templatestringa template to format that branch name. You can use {{ .Branch }} as reference to the original branch name

Selector

NameTypeDefaultDescription
commit_iconstring\uF417icon/text to display before the commit context (detached HEAD)
tag_iconstring\uF412icon/text to display before the tag context

Template (info)

:::note default template

template
 {{ .Selector }}

:::

Properties

NameTypeDescription
.Selectorstringthe current selector context (branch/changeset/label)
.Behindboolthe current workspace is behind and changes are incoming
.StatusStatuschanges in the workspace (see below)
.MergePendingboolif a merge is pending and needs to be committed (known issue: when no file is left after a Change/Delete conflict merge, the MergePending property is not set)

Status

NameTypeDescription
.Unmergedintnumber of unmerged changes
.Deletedintnumber of deleted changes
.Addedintnumber of added changes
.Modifiedintnumber of modified changes
.Movedintnumber of moved changes
.Changedbooleanif the status contains changes or not
.Stringstringa string representation of the changes above

Local changes use the following syntax:

IconDescription
xUnmerged
-Deleted
+Added
~Modified
vMoved