website/docs/segments/scm/plastic.mdx
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).
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 }}", }} />
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!
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.
| Name | Type | Default | Description |
|---|---|---|---|
native_fallback | boolean | false | when 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_formats | map[string]string | a 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 |
| Name | Type | Default | Description |
|---|---|---|---|
branch_icon | string | \uE0A0 | the icon to use in front of the git branch name |
mapped_branches | object | custom glyph/text for specific branches. You can use * at the end as a wildcard character for matching | |
branch_template | string | a template to format that branch name. You can use {{ .Branch }} as reference to the original branch name |
| Name | Type | Default | Description |
|---|---|---|---|
commit_icon | string | \uF417 | icon/text to display before the commit context (detached HEAD) |
tag_icon | string | \uF412 | icon/text to display before the tag context |
:::note default template
{{ .Selector }}
:::
| Name | Type | Description |
|---|---|---|
.Selector | string | the current selector context (branch/changeset/label) |
.Behind | bool | the current workspace is behind and changes are incoming |
.Status | Status | changes in the workspace (see below) |
.MergePending | bool | if 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) |
| Name | Type | Description |
|---|---|---|
.Unmerged | int | number of unmerged changes |
.Deleted | int | number of deleted changes |
.Added | int | number of added changes |
.Modified | int | number of modified changes |
.Moved | int | number of moved changes |
.Changed | boolean | if the status contains changes or not |
.String | string | a string representation of the changes above |
Local changes use the following syntax:
| Icon | Description |
|---|---|
x | Unmerged |
- | Deleted |
+ | Added |
~ | Modified |
v | Moved |