Skip to content

Commit

Permalink
Merge pull request #64 from abgox/module
Browse files Browse the repository at this point in the history
fix(module): 更新版本 5.3.1
  • Loading branch information
abgox authored Jan 5, 2025
2 parents 187daef + 6ac80da commit bb104e1
Show file tree
Hide file tree
Showing 9 changed files with 79 additions and 41 deletions.
1 change: 1 addition & 0 deletions README-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -251,6 +251,7 @@
- 可通过 `psc menu symbol WriteSpaceTab <symbol>` 自定义此符号
- 所有补全都可以在输入部分字符后按下 `Tab` 键触发补全
- 对于以 `=` 结尾的选项,如果有相关补全定义,则可以直接按下 `Tab` 键触发补全
### 关于补全提示信息
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,7 @@
- If there's also `»`, it means that there's some preset completions, you can press `Space` and `Tab` key to continue to get them without entering a string.
- It can be customized by running `psc menu symbol WriteSpaceTab <symbol>`
- All completions can be triggered by pressing the `Tab` key after entering a part.
- For options ending with `=`, if there's completion definition, you can directly press the `Tab` key to get the completions.
### About completion tip
Expand Down
6 changes: 6 additions & 0 deletions module/CHANGELOG-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@
<a href="./CHANGELOG-CN.md">简体中文</a>
</p>

## 5.3.1 (2025/1/5)

- 修复了当选项补全已使用,在下次补全时没有被过滤掉的问题。
- 支持以 `=` 结尾的选项直接获取后续补全项。
- 需要相关补全定义。

## 5.3.0 (2025/1/1)

- 优化了 json 补全文件的属性结构和解析。
Expand Down
17 changes: 17 additions & 0 deletions module/CHANGELOG.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,21 @@
[
{
"version": "5.3.1",
"info": {
"zh-CN": [
"更新(2025/1/5)\n",
"- 修复了当选项补全已使用,在下次补全时没有被过滤掉的问题。\n",
"- 支持以 = 结尾的选项直接获取后续补全项。\n",
" - 需要相关补全定义。\n"
],
"en-US": [
"Update(2025/1/5)\n",
"- Fix an issue where when option completion had been used, it wasn't filtered out on the next completion.\n",
"- Support options ending with = to directly get next completion items.\n",
" - Requires completion definition.\n"
]
}
},
{
"version": "5.3.0",
"info": {
Expand Down
6 changes: 6 additions & 0 deletions module/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@
<a href="./CHANGELOG.md">English</a>
</p>

## 5.3.1 (2025/1/5)

- Fix an issue where when option completion had been used, it wasn't filtered out on the next completion.
- Support options ending with `=` to directly get next completion items.
- Requires completion definition.

## 5.3.0 (2025/1/1)

- Optimize the property structure and parsing of json completion files.
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.3.0'
ModuleVersion = '5.3.1'

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

Expand Down
2 changes: 1 addition & 1 deletion module/PSCompletions/core/completion/win.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Add-Member -InputObject $PSCompletions -MemberType ScriptMethod generate_complet
$filter_list = $PSCompletions.get_completion()
$result = $PSCompletions.menu.show_module_menu($filter_list)
if ($result -ne $null) {
if ($space_tab) {
if ($space_tab -or $PSCompletions.input_arr[-1] -like '-*=') {
[Microsoft.PowerShell.PSConsoleReadLine]::Insert($result)
}
else {
Expand Down
83 changes: 45 additions & 38 deletions 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.3.0'
version = '5.3.1'
path = @{
root = $_
completions = Join-Path $_ 'completions'
Expand Down Expand Up @@ -305,7 +305,7 @@ Add-Member -InputObject $PSCompletions -MemberType ScriptMethod get_completion {
# 1. 没有选项
# 2. 最后一个是选项

if ($space_tab) {
if ($space_tab -or $PSCompletions.input_arr[-1] -like '-*=') {
$filter_input_arr = [array](filterInput $input_arr)
}
else {
Expand Down Expand Up @@ -437,7 +437,7 @@ Add-Member -InputObject $PSCompletions -MemberType ScriptMethod get_completion {
$completions = $PSCompletions.completions_data.$root
$filter_list = [array](filterCompletions)
$filter_list = [array](handleCompletions $filter_list)
if ($space_tab) {
if ($space_tab -or $PSCompletions.input_arr[-1] -like '-*=') {
$filter_list = $filter_list.Where({ $_.CompletionText -notlike "-*" -or $_.CompletionText -notin $input_arr })
}
else {
Expand Down Expand Up @@ -481,46 +481,42 @@ Add-Member -InputObject $PSCompletions -MemberType ScriptMethod get_completion {

$filter_list = [array]$filter_list

$return = @()
if ($space_tab) {
foreach ($item in $filter_list) {
if ($item -ne $null) {
$has_alias = $false
if ($item.alias) {
foreach ($a in $item.alias) {
if ($a -in $PSCompletions.input_arr) {
$has_alias = $true
break
}
}
}
if (!$has_alias) {
$padSymbols = foreach ($c in $item.symbols) { $PSCompletions.config.$c }
$padSymbols = if ($padSymbols) { "$($PSCompletions.config.between_item_and_symbol)$($padSymbols -join '')" }else { '' }
$return += @{
ListItemText = $item.ListItemText + $padSymbols
CompletionText = $item.CompletionText
ToolTip = $item.ToolTip
}
}
}
}
return $return
$_input_arr = $PSCompletions.input_arr
}
else {
foreach ($item in $filter_list) {
if ($item -ne $null) {
$padSymbols = foreach ($c in $item.symbols) { $PSCompletions.config.$c }
$padSymbols = if ($padSymbols) { "$($PSCompletions.config.between_item_and_symbol)$($padSymbols -join '')" }else { '' }
$return += @{
ListItemText = $item.ListItemText + $padSymbols
CompletionText = $item.CompletionText
ToolTip = $item.ToolTip
$_input_arr = [System.Collections.Generic.List[string]]$PSCompletions.input_arr.Clone()
$_input_arr.RemoveAt(($_input_arr.Count - 1))
}
$return = @()

foreach ($item in $filter_list) {
if ($item -ne $null) {
if ($item.CompletionText -in $_input_arr) {
continue
}
$isContinue = $false
if ($item.alias) {
foreach ($a in $item.alias) {
if ($a -in $_input_arr) {
$isContinue = $true
break
}
}
}
if ($isContinue) {
continue
}
$padSymbols = foreach ($c in $item.symbols) { $PSCompletions.config.$c }
$padSymbols = if ($padSymbols) { "$($PSCompletions.config.between_item_and_symbol)$($padSymbols -join '')" }else { '' }
$return += @{
ListItemText = $item.ListItemText + $padSymbols
CompletionText = $item.CompletionText
ToolTip = $item.ToolTip
}
}
return $return
}
return $return
}
Add-Member -InputObject $PSCompletions -MemberType ScriptMethod handle_data_by_runspace {
param(
Expand Down Expand Up @@ -1125,14 +1121,25 @@ Add-Member -InputObject $PSCompletions.menu -MemberType ScriptMethod show_powers
}
$padSymbols = foreach ($c in $_.symbols) { $PSCompletions.config.$c }
$padSymbols = if ($padSymbols) { "$($PSCompletions.config.between_item_and_symbol)$($padSymbols -join '')" }else { '' }
[CompletionResult]::new($_.CompletionText, ($_.ListItemText + $padSymbols), 'ParameterValue', $tip)

if ($PSCompletions.input_arr[-1] -like "-*=") {
[CompletionResult]::new("$($PSCompletions.input_arr[-1])$($_.CompletionText)", ($_.ListItemText + $padSymbols), 'ParameterValue', $tip)
}
else {
[CompletionResult]::new($_.CompletionText, ($_.ListItemText + $padSymbols), 'ParameterValue', $tip)
}
}
}
else {
foreach ($_ in $filter_list) {
$padSymbols = foreach ($c in $_.symbols) { $PSCompletions.config.$c }
$padSymbols = if ($padSymbols) { "$($PSCompletions.config.between_item_and_symbol)$($padSymbols -join '')" }else { '' }
[CompletionResult]::new($_.CompletionText, ($_.ListItemText + $padSymbols), 'ParameterValue', ' ')
if ($PSCompletions.input_arr[-1] -like "-*=") {
[CompletionResult]::new("$($PSCompletions.input_arr[-1])$($_.CompletionText)", ($_.ListItemText + $padSymbols), 'ParameterValue', ' ')
}
else {
[CompletionResult]::new($_.CompletionText, ($_.ListItemText + $padSymbols), 'ParameterValue', ' ')
}
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion module/version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
5.3.0
5.3.1

0 comments on commit bb104e1

Please sign in to comment.