Skip to content

Commit 355bd08

Browse files
authored
Update 'CreateCharInfoBuffer' to support continuous 'NextLineToken' (#2880)
1 parent d375997 commit 355bd08

File tree

7 files changed

+120
-93
lines changed

7 files changed

+120
-93
lines changed

test/CompletionTest.cs

Lines changed: 33 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -741,7 +741,6 @@ public void MenuCompletions_ClearProperly()
741741
_console.Clear();
742742
int width = _console.BufferWidth;
743743
string placeholderCommand = new string('A', width - 12); // 12 = "Get-Module".Length + 2
744-
string emptyLine = new string(' ', width);
745744

746745
Test($"{placeholderCommand};Get-Module", Keys(
747746
placeholderCommand, ';',
@@ -751,10 +750,12 @@ public void MenuCompletions_ClearProperly()
751750
TokenClassification.Command, placeholderCommand,
752751
TokenClassification.None, ';',
753752
TokenClassification.Command, "Get-Mo",
754-
TokenClassification.Selection, "ckDynamicParameters", NextLine,
753+
TokenClassification.Selection, "ckDynamicParameters",
754+
NextLine,
755755
TokenClassification.Selection, "Get-MockDynamicParameters ",
756-
TokenClassification.None, "Get-Module ", NextLine,
757-
TokenClassification.None, emptyLine)),
756+
TokenClassification.None, "Get-Module ",
757+
NextLine,
758+
NextLine)),
758759
_.RightArrow,
759760
// Navigating to the next item will cause the editing line to fit in
760761
// one physical line, so the new menu is moved up and lines from the
@@ -763,28 +764,34 @@ public void MenuCompletions_ClearProperly()
763764
TokenClassification.Command, placeholderCommand,
764765
TokenClassification.None, ';',
765766
TokenClassification.Command, "Get-Mo",
766-
TokenClassification.Selection, "dule", NextLine,
767+
TokenClassification.Selection, "dule",
768+
NextLine,
767769
TokenClassification.None, "Get-MockDynamicParameters ",
768-
TokenClassification.Selection, "Get-Module ", NextLine,
769-
TokenClassification.None, emptyLine)),
770+
TokenClassification.Selection, "Get-Module ",
771+
NextLine,
772+
NextLine)),
770773
_.LeftArrow,
771774
CheckThat(() => AssertScreenIs(4,
772775
TokenClassification.Command, placeholderCommand,
773776
TokenClassification.None, ';',
774777
TokenClassification.Command, "Get-Mo",
775-
TokenClassification.Selection, "ckDynamicParameters", NextLine,
778+
TokenClassification.Selection, "ckDynamicParameters",
779+
NextLine,
776780
TokenClassification.Selection, "Get-MockDynamicParameters ",
777-
TokenClassification.None, "Get-Module ", NextLine,
778-
TokenClassification.None, emptyLine)),
781+
TokenClassification.None, "Get-Module ",
782+
NextLine,
783+
NextLine)),
779784
_.DownArrow,
780785
CheckThat(() => AssertScreenIs(3,
781786
TokenClassification.Command, placeholderCommand,
782787
TokenClassification.None, ';',
783788
TokenClassification.Command, "Get-Mo",
784-
TokenClassification.Selection, "dule", NextLine,
789+
TokenClassification.Selection, "dule",
790+
NextLine,
785791
TokenClassification.None, "Get-MockDynamicParameters ",
786-
TokenClassification.Selection, "Get-Module ", NextLine,
787-
TokenClassification.None, emptyLine)),
792+
TokenClassification.Selection, "Get-Module ",
793+
NextLine,
794+
NextLine)),
788795
_.Enter,
789796
_.Enter
790797
));
@@ -795,9 +802,8 @@ public void MenuCompletions_WorkWithListView()
795802
{
796803
TestSetup(KeyMode.Cmd, new KeyHandler("Ctrl+Spacebar", PSConsoleReadLine.MenuComplete));
797804

798-
var (listWidth, windowWidth) = CheckWindowSize();
805+
int listWidth = CheckWindowSize();
799806
var emphasisColors = Tuple.Create(PSConsoleReadLineOptions.DefaultEmphasisColor, _console.BackgroundColor);
800-
string emptyLine = new string(' ', windowWidth);
801807
using var disp = SetPrediction(PredictionSource.History, PredictionViewStyle.ListView);
802808

803809
_console.Clear();
@@ -828,19 +834,23 @@ public void MenuCompletions_WorkWithListView()
828834
_.Ctrl_Spacebar,
829835
CheckThat(() => AssertScreenIs(4,
830836
TokenClassification.Command, "Get-Mo",
831-
TokenClassification.Selection, "ckDynamicParameters", NextLine,
837+
TokenClassification.Selection, "ckDynamicParameters",
838+
NextLine,
832839
TokenClassification.Selection, "Get-MockDynamicParameters ",
833-
TokenClassification.None, "Get-Module", NextLine,
834-
TokenClassification.None, emptyLine,
835-
TokenClassification.None, emptyLine)),
840+
TokenClassification.None, "Get-Module",
841+
NextLine,
842+
NextLine,
843+
NextLine)),
836844
_.RightArrow,
837845
CheckThat(() => AssertScreenIs(4,
838846
TokenClassification.Command, "Get-Mo",
839-
TokenClassification.Selection, "dule", NextLine,
847+
TokenClassification.Selection, "dule",
848+
NextLine,
840849
TokenClassification.None, "Get-MockDynamicParameters ",
841-
TokenClassification.Selection, "Get-Module ", NextLine,
842-
TokenClassification.None, emptyLine,
843-
TokenClassification.None, emptyLine)),
850+
TokenClassification.Selection, "Get-Module ",
851+
NextLine,
852+
NextLine,
853+
NextLine)),
844854
_.Enter,
845855
_.Enter
846856
));

test/DynamicHelpTest.cs

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,6 @@ public void DynHelp_GetParameterHelp_OnEmptyLine()
126126
public void DynHelp_GetParameterHelp_And_Clear()
127127
{
128128
TestSetup(KeyMode.Cmd);
129-
string emptyLine = new string(' ', _console.BufferWidth);
130129

131130
Test("Get-Date -Date", Keys(
132131
"Get-Date -Date", _.Alt_h,
@@ -135,10 +134,10 @@ public void DynHelp_GetParameterHelp_And_Clear()
135134
TokenClassification.None, " ",
136135
TokenClassification.Parameter, "-Date",
137136
NextLine,
138-
emptyLine,
137+
NextLine,
139138
TokenClassification.None, $"-Date <name>",
140139
NextLine,
141-
emptyLine,
140+
NextLine,
142141
TokenClassification.None, "DESC: Specifies a date and time.",
143142
NextLine,
144143
TokenClassification.None, "Required: false, Position: 0, Default Value: None, Pipeline ",
@@ -157,7 +156,6 @@ public void DynHelp_GetParameterHelp_And_Clear()
157156
public void DynHelp_GetParameterHelpMultiLine_And_Clear()
158157
{
159158
TestSetup(KeyMode.Cmd);
160-
string emptyLine = new string(' ', _console.BufferWidth);
161159

162160
Test("Get-MultiLineHelp -OneAndHalf", Keys(
163161
"Get-MultiLineHelp -OneAndHalf", _.Alt_h,
@@ -166,10 +164,10 @@ public void DynHelp_GetParameterHelpMultiLine_And_Clear()
166164
TokenClassification.None, " ",
167165
TokenClassification.Parameter, "-OneAndHalf",
168166
NextLine,
169-
emptyLine,
167+
NextLine,
170168
TokenClassification.None, $"-Date <name>",
171169
NextLine,
172-
emptyLine,
170+
NextLine,
173171
TokenClassification.None, "DESC: Some very long description that is over the buffer width of ",
174172
TokenClassification.None, "60 characters but shorter than 120.",
175173
NextLine,
@@ -189,7 +187,6 @@ public void DynHelp_GetParameterHelpMultiLine_And_Clear()
189187
public void DynHelp_GetParameterHelpTwoLines_And_Clear()
190188
{
191189
TestSetup(KeyMode.Cmd);
192-
string emptyLine = new string(' ', _console.BufferWidth);
193190

194191
Test("Get-MultiLineHelp -ExactlyTwo", Keys(
195192
"Get-MultiLineHelp -ExactlyTwo", _.Alt_h,
@@ -198,10 +195,10 @@ public void DynHelp_GetParameterHelpTwoLines_And_Clear()
198195
TokenClassification.None, " ",
199196
TokenClassification.Parameter, "-ExactlyTwo",
200197
NextLine,
201-
emptyLine,
198+
NextLine,
202199
TokenClassification.None, $"-Date <name>",
203200
NextLine,
204-
emptyLine,
201+
NextLine,
205202
TokenClassification.None, "DESC: Some very long description that is over the buffer wid",
206203
TokenClassification.None, "th of 60 characters and exactly the length of 120 characters",
207204
NextLine,
@@ -221,7 +218,6 @@ public void DynHelp_GetParameterHelpTwoLines_And_Clear()
221218
public void DynHelp_GetParameterHelpTwoLines_And_Clear_Emacs()
222219
{
223220
TestSetup(KeyMode.Emacs);
224-
string emptyLine = new string(' ', _console.BufferWidth);
225221

226222
Test("Get-MultiLineHelp -ExactlyTwo", Keys(
227223
"Get-MultiLineHelp -ExactlyTwo", _.Alt_h,
@@ -230,10 +226,10 @@ public void DynHelp_GetParameterHelpTwoLines_And_Clear_Emacs()
230226
TokenClassification.None, " ",
231227
TokenClassification.Parameter, "-ExactlyTwo",
232228
NextLine,
233-
emptyLine,
229+
NextLine,
234230
TokenClassification.None, $"-Date <name>",
235231
NextLine,
236-
emptyLine,
232+
NextLine,
237233
TokenClassification.None, "DESC: Some very long description that is over the buffer wid",
238234
TokenClassification.None, "th of 60 characters and exactly the length of 120 characters",
239235
NextLine,
@@ -253,7 +249,6 @@ public void DynHelp_GetParameterHelpTwoLines_And_Clear_Emacs()
253249
public void DynHelp_GetParameterHelpTwoLines_And_Clear_Vi()
254250
{
255251
TestSetup(KeyMode.Vi);
256-
string emptyLine = new string(' ', _console.BufferWidth);
257252

258253
Test("Get-MultiLineHelp -ExactlyTwo", Keys(
259254
"Get-MultiLineHelp -ExactlyTwo", _.Alt_h,
@@ -262,10 +257,10 @@ public void DynHelp_GetParameterHelpTwoLines_And_Clear_Vi()
262257
TokenClassification.None, " ",
263258
TokenClassification.Parameter, "-ExactlyTwo",
264259
NextLine,
265-
emptyLine,
260+
NextLine,
266261
TokenClassification.None, $"-Date <name>",
267262
NextLine,
268-
emptyLine,
263+
NextLine,
269264
TokenClassification.None, "DESC: Some very long description that is over the buffer wid",
270265
TokenClassification.None, "th of 60 characters and exactly the length of 120 characters",
271266
NextLine,
@@ -285,7 +280,6 @@ public void DynHelp_GetParameterHelpTwoLines_And_Clear_Vi()
285280
public void DynHelp_GetParameterHelpErrorMessage()
286281
{
287282
TestSetup(KeyMode.Cmd);
288-
string emptyLine = new string(' ', _console.BufferWidth);
289283

290284
Test("Get-FakeHelp -Fake", Keys(
291285
"Get-FakeHelp -Fake", _.Alt_h,
@@ -294,7 +288,7 @@ public void DynHelp_GetParameterHelpErrorMessage()
294288
TokenClassification.None, " ",
295289
TokenClassification.Parameter, "-Fake",
296290
NextLine,
297-
emptyLine,
291+
NextLine,
298292
TokenClassification.None, "No help content available. Please use Update-Help to downloa",
299293
NextLine,
300294
"d the latest help content.")),

0 commit comments

Comments
 (0)