feat: add cursor style option for cli
This commit is contained in:
parent
d75635bf70
commit
edaef2a78c
|
@ -31,6 +31,7 @@ func NewPreferences() Preferences {
|
||||||
},
|
},
|
||||||
Cli: PreferencesCli{
|
Cli: PreferencesCli{
|
||||||
FontSize: consts.DEFAULT_FONT_SIZE,
|
FontSize: consts.DEFAULT_FONT_SIZE,
|
||||||
|
CursorStyle: "block",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -69,4 +70,5 @@ type PreferencesEditor struct {
|
||||||
type PreferencesCli struct {
|
type PreferencesCli struct {
|
||||||
FontFamily []string `json:"fontFamily" yaml:"font_family,omitempty"`
|
FontFamily []string `json:"fontFamily" yaml:"font_family,omitempty"`
|
||||||
FontSize int `json:"fontSize" yaml:"font_size"`
|
FontSize int `json:"fontSize" yaml:"font_size"`
|
||||||
|
CursorStyle string `json:"cursorStyle" yaml:"cursor_style,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,6 +37,7 @@ const newTerm = () => {
|
||||||
allowProposedApi: true,
|
allowProposedApi: true,
|
||||||
fontFamily,
|
fontFamily,
|
||||||
fontSize,
|
fontSize,
|
||||||
|
cursorStyle: prefStore.cli.cursorStyle || 'block',
|
||||||
cursorBlink: true,
|
cursorBlink: true,
|
||||||
disableStdin: false,
|
disableStdin: false,
|
||||||
screenReaderMode: true,
|
screenReaderMode: true,
|
||||||
|
@ -102,6 +103,16 @@ watch(
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => prefStore.cli.cursorStyle,
|
||||||
|
(style) => {
|
||||||
|
if (termInst != null) {
|
||||||
|
termInst.options.cursorStyle = style || 'block'
|
||||||
|
}
|
||||||
|
resizeTerm()
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
const prefixContent = computed(() => {
|
const prefixContent = computed(() => {
|
||||||
return '\x1b[33m' + promptPrefix.value + '\x1b[0m'
|
return '\x1b[33m' + promptPrefix.value + '\x1b[0m'
|
||||||
})
|
})
|
||||||
|
|
|
@ -214,6 +214,16 @@ const onClose = () => {
|
||||||
<n-form-item-gi :label="$t('preferences.general.font_size')" :span="24">
|
<n-form-item-gi :label="$t('preferences.general.font_size')" :span="24">
|
||||||
<n-input-number v-model:value="prefStore.cli.fontSize" :max="65535" :min="1" />
|
<n-input-number v-model:value="prefStore.cli.fontSize" :max="65535" :min="1" />
|
||||||
</n-form-item-gi>
|
</n-form-item-gi>
|
||||||
|
<n-form-item-gi :label="$t('preferences.cli.cursor_style')" :span="24">
|
||||||
|
<n-radio-group v-model:value="prefStore.cli.cursorStyle" name="theme" size="medium">
|
||||||
|
<n-radio-button
|
||||||
|
v-for="opt in prefStore.cliCursorStyleOption"
|
||||||
|
:key="opt.value"
|
||||||
|
:value="opt.value">
|
||||||
|
{{ $t(opt.label) }}
|
||||||
|
</n-radio-button>
|
||||||
|
</n-radio-group>
|
||||||
|
</n-form-item-gi>
|
||||||
</n-grid>
|
</n-grid>
|
||||||
</n-form>
|
</n-form>
|
||||||
</n-tab-pane>
|
</n-tab-pane>
|
||||||
|
|
|
@ -56,7 +56,11 @@
|
||||||
"show_folding": "Enable Code Folding"
|
"show_folding": "Enable Code Folding"
|
||||||
},
|
},
|
||||||
"cli": {
|
"cli": {
|
||||||
"name": "Command Line"
|
"name": "Command Line",
|
||||||
|
"cursor_style": "Cursor Style",
|
||||||
|
"cursor_style_block": "Block",
|
||||||
|
"cursor_style_underline": "Underline",
|
||||||
|
"cursor_style_bar": "Bar"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"interface": {
|
"interface": {
|
||||||
|
|
|
@ -56,7 +56,11 @@
|
||||||
"show_folding": "启用代码折叠"
|
"show_folding": "启用代码折叠"
|
||||||
},
|
},
|
||||||
"cli": {
|
"cli": {
|
||||||
"name": "命令行"
|
"name": "命令行",
|
||||||
|
"cursor_style": "光标样式",
|
||||||
|
"cursor_style_block": "方块",
|
||||||
|
"cursor_style_underline": "下划线",
|
||||||
|
"cursor_style_bar": "竖线"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"interface": {
|
"interface": {
|
||||||
|
|
|
@ -62,6 +62,7 @@ const usePreferencesStore = defineStore('preferences', {
|
||||||
cli: {
|
cli: {
|
||||||
fontFamily: [],
|
fontFamily: [],
|
||||||
fontSize: 14,
|
fontSize: 14,
|
||||||
|
cursorStyle: 'block',
|
||||||
},
|
},
|
||||||
lastPref: {},
|
lastPref: {},
|
||||||
fontList: [],
|
fontList: [],
|
||||||
|
@ -191,6 +192,23 @@ const usePreferencesStore = defineStore('preferences', {
|
||||||
return fontStyle
|
return fontStyle
|
||||||
},
|
},
|
||||||
|
|
||||||
|
cliCursorStyleOption() {
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
value: 'block',
|
||||||
|
label: 'preferences.cli.cursor_style_block',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'underline',
|
||||||
|
label: 'preferences.cli.cursor_style_underline',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'bar',
|
||||||
|
label: 'preferences.cli.cursor_style_bar',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get current language setting
|
* get current language setting
|
||||||
* @return {string}
|
* @return {string}
|
||||||
|
|
Loading…
Reference in New Issue