Skip to content

Commit

Permalink
fix(module): update version to 5.2.5
Browse files Browse the repository at this point in the history
  • Loading branch information
abgox committed Dec 19, 2024
1 parent 941bc79 commit b6a3211
Show file tree
Hide file tree
Showing 7 changed files with 73 additions and 19 deletions.
4 changes: 4 additions & 0 deletions module/CHANGELOG-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@
<a href="./CHANGELOG-CN.md">简体中文</a>
</p>

## 5.2.5 (2024/12/19)

- 修复了当配置项 `enable_tip` 设置为 0 时,过滤补全会导致报错的问题,减少了补全菜单闪烁的问题。

## 5.2.4 (2024/12/19)

- 优化模块版本迁移
Expand Down
13 changes: 13 additions & 0 deletions module/CHANGELOG.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,17 @@
[
{
"version": "5.2.5",
"info": {
"zh-CN": [
"更新(2024/12/19)\n",
"- 修复了当配置项 <@Magenta>enable_tip<@Blue> 设置为 0 时,过滤补全会导致报错的问题,减少了补全菜单闪烁的问题。\n"
],
"en-US": [
"Update(2024/12/19)\n",
"- Fix a bug where filtering completions would cause an error when the configuration item <@Magenta>enable_tip<@Blue> is set to 0, and reduce the flashing of completion menu.\n"
]
}
},
{
"version": "5.2.4",
"info": {
Expand Down
4 changes: 4 additions & 0 deletions module/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@
<a href="./CHANGELOG.md">English</a>
</p>

## 5.2.5 (2024/12/19)

- Fix a bug where filtering completions would cause an error when the configuration item `enable_tip` is set to 0, and reduce the flashing of completion menu.

## 5.2.4 (2024/12/19)

- Optimize module version migration.
Expand Down
2 changes: 1 addition & 1 deletion module/PSCompletions/PSCompletions.psd1
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
@{
RootModule = 'PSCompletions.psm1'

ModuleVersion = '5.2.4'
ModuleVersion = '5.2.5'

GUID = '00929632-527d-4dab-a5b3-21197faccd05'

Expand Down
2 changes: 1 addition & 1 deletion module/PSCompletions/core/init.ps1
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using namespace System.Management.Automation
$_ = Split-Path $PSScriptRoot -Parent
New-Variable -Name PSCompletions -Value @{
version = '5.2.4'
version = '5.2.5'
path = @{
root = $_
completions = Join-Path $_ 'completions'
Expand Down
65 changes: 49 additions & 16 deletions module/PSCompletions/core/menu/win.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -376,6 +376,9 @@ Add-Member -InputObject $PSCompletions.menu -MemberType ScriptMethod get_pos {
}
}
Add-Member -InputObject $PSCompletions.menu -MemberType ScriptMethod new_cover_buffer {
if (!$PSCompletions.is_show_tip) {
return
}
if ($PSCompletions.config.enable_tip_cover_buffer -eq 1) {
$box = @()
$line = ' ' * $Host.UI.RawUI.BufferSize.Width
Expand Down Expand Up @@ -453,11 +456,10 @@ Add-Member -InputObject $PSCompletions.menu -MemberType ScriptMethod new_buffer

$Host.UI.RawUI.SetBufferContents($PSCompletions.menu.pos, $Host.UI.RawUI.NewBufferCellArray($border_box, $PSCompletions.config.border_text, $PSCompletions.config.border_back))

$pos = @{
X = $PSCompletions.menu.pos.X + 1
Y = $PSCompletions.menu.pos.Y + 1
}
$Host.UI.RawUI.SetBufferContents($pos, $Host.UI.RawUI.NewBufferCellArray($content_box, $PSCompletions.config.item_text, $PSCompletions.config.item_back))
$Host.UI.RawUI.SetBufferContents(@{
X = $PSCompletions.menu.pos.X + 1
Y = $PSCompletions.menu.pos.Y + 1
}, $Host.UI.RawUI.NewBufferCellArray($content_box, $PSCompletions.config.item_text, $PSCompletions.config.item_back))
}
Add-Member -InputObject $PSCompletions.menu -MemberType ScriptMethod new_list_buffer {
param([int]$offset)
Expand Down Expand Up @@ -732,13 +734,16 @@ Add-Member -InputObject $PSCompletions.menu -MemberType ScriptMethod filter_comp
}
}
Add-Member -InputObject $PSCompletions.menu -MemberType ScriptMethod reset {
param([bool]$clearAll)
param(
[bool]$clearAll = $true,
[bool]$clearMenu = $true
)

if ($PSCompletions.menu.old_tip_buffer) {
$Host.UI.RawUI.SetBufferContents($PSCompletions.menu.old_tip_buffer.top, $PSCompletions.menu.old_tip_buffer.buffer)
}

if ($PSCompletions.menu.old_menu_buffer) {
if ($clearMenu -and $PSCompletions.menu.old_menu_buffer) {
$Host.UI.RawUI.SetBufferContents($PSCompletions.menu.old_menu_buffer.top, $PSCompletions.menu.old_menu_buffer.buffer)
}

Expand Down Expand Up @@ -823,7 +828,7 @@ Add-Member -InputObject $PSCompletions.menu -MemberType ScriptMethod show_module

$PSCompletions.menu.offset = 0 # 索引的偏移量,用于滚动翻页

$PSCompletions.menu.reset($true)
$PSCompletions.menu.reset()

$PSCompletions.menu.handle_list_first($filter_list)

Expand Down Expand Up @@ -880,7 +885,7 @@ Add-Member -InputObject $PSCompletions.menu -MemberType ScriptMethod show_module
switch ($PressKey.VirtualKeyCode) {
67 {
# 67: Ctrl + c
$PSCompletions.menu.reset($true)
$PSCompletions.menu.reset()
''
break loop
}
Expand All @@ -904,7 +909,7 @@ Add-Member -InputObject $PSCompletions.menu -MemberType ScriptMethod show_module
# 9: Tab
# 32: Space
if ($PSCompletions.menu.filter_list.Count -eq 1) {
$PSCompletions.menu.reset($true)
$PSCompletions.menu.reset()
$PSCompletions.menu.filter_list[$PSCompletions.menu.selected_index].CompletionText
break loop
}
Expand All @@ -920,14 +925,14 @@ Add-Member -InputObject $PSCompletions.menu -MemberType ScriptMethod show_module
}
27 {
# 27: ESC
$PSCompletions.menu.reset($true)
$PSCompletions.menu.reset()
''
break loop
}
13 {
# 13: Enter
handleOutput $PSCompletions.menu.filter_list[$PSCompletions.menu.selected_index]
$PSCompletions.menu.reset($true)
$PSCompletions.menu.reset()
break loop
}

Expand All @@ -953,20 +958,20 @@ Add-Member -InputObject $PSCompletions.menu -MemberType ScriptMethod show_module
if ($PSCompletions.menu.filter -eq $PSCompletions.menu.filter_by_auto_pick) {
$PSCompletions.menu.filter = ''
$PSCompletions.menu.filter_by_auto_pick = ''
$PSCompletions.menu.reset($true)
$PSCompletions.menu.reset()
''
break loop
}
if ($PSCompletions.menu.filter) {
$PSCompletions.menu.filter = $PSCompletions.menu.filter.Substring(0, $PSCompletions.menu.filter.Length - 1)
}
else {
$PSCompletions.menu.reset($true)
$PSCompletions.menu.reset()
''
break loop
}
$PSCompletions.menu.new_cover_buffer()
$PSCompletions.menu.reset()
$PSCompletions.menu.reset($false, $PSCompletions.menu.is_show_tip)
$PSCompletions.menu.filter_completions($PSCompletions.menu.origin_filter_list)
$PSCompletions.menu.parse_list()
$PSCompletions.menu.new_buffer()
Expand All @@ -984,7 +989,35 @@ Add-Member -InputObject $PSCompletions.menu -MemberType ScriptMethod show_module
}
else {
$PSCompletions.menu.new_cover_buffer()
$PSCompletions.menu.reset()

# XXX: 处理补全项过滤时菜单消失后出现的背景闪烁问题
if (!$PSCompletions.menu.is_show_tip) {
if ($PSCompletions.menu.page_current_index -eq 0) {
$box = @(' ' * $PSCompletions.menu.list_max_width)
$Host.UI.RawUI.SetBufferContents(@{
X = $PSCompletions.menu.pos.X + 1
Y = $PSCompletions.menu.pos.Y + 1
}, $Host.UI.RawUI.NewBufferCellArray($box, $PSCompletions.config.selected_text, $PSCompletions.config.selected_back))
$pos = @{
X = $PSCompletions.menu.pos.X + 1
Y = $PSCompletions.menu.pos.Y + 2
}
}
else {
$box = @()
$line = ' ' * $PSCompletions.menu.list_max_width
foreach ($l in $PSCompletions.menu.ui_size.Height - 2) {
$box += $line
}
$pos = @{
X = $PSCompletions.menu.pos.X + 1
Y = $PSCompletions.menu.pos.Y + 1
}
}
$Host.UI.RawUI.SetBufferContents($pos, $Host.UI.RawUI.NewBufferCellArray($box, $PSCompletions.config.item_back, $PSCompletions.config.item_back))
}

$PSCompletions.menu.reset($false)
$PSCompletions.menu.parse_list()
$PSCompletions.menu.new_buffer()
if ($PSCompletions.menu.is_show_tip) { $PSCompletions.menu.new_tip_buffer($PSCompletions.menu.selected_index) }
Expand Down
2 changes: 1 addition & 1 deletion module/version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
5.2.4
5.2.5

0 comments on commit b6a3211

Please sign in to comment.