Skip to content

Commit

Permalink
cleanup for review
Browse files Browse the repository at this point in the history
  • Loading branch information
zadjii-msft committed Jun 6, 2024
1 parent 1ae3790 commit 5647c6d
Showing 1 changed file with 27 additions and 33 deletions.
60 changes: 27 additions & 33 deletions src/cascadia/TerminalCore/Terminal.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1586,6 +1586,7 @@ til::point Terminal::GetViewportRelativeCursorPosition() const noexcept

void Terminal::PreviewText(std::wstring_view input)
{
// Our suggestion text is default-on-default, in italics.
static constexpr TextAttribute previewAttrs{ CharacterAttributes::Italics, TextColor{}, TextColor{}, 0u, TextColor{} };

auto lock = LockForWriting();
Expand All @@ -1597,44 +1598,37 @@ void Terminal::PreviewText(std::wstring_view input)
return;
}

// HACK trim off leading DEL chars.
// When we're previewing suggestions, they might be preceeded with DEL

Check failure

Code scanning / check-spelling

Unrecognized Spelling Error

preceeded is not a recognized word. (unrecognized-spelling)
// characters to backspace off the old command.
//
// But also, in the case of something like pwsh, there might be MORE "ghost"
// text in the buffer _after_ the commandline.
//
// We need to trim off the leading DELs, then pad out the rest of the line
// to cover any other ghost text.
std::wstring_view view{ input };
// Where do the DELs end?
const auto strBegin = view.find_first_not_of(L"\x7f");

// // What we actually want to display is the text that would remain after
// // accounting for the leading backspaces. So trim off the leading
// // backspaces, AND and equal number of "real" characters.
// if (strBegin != std::wstring::npos)
// {
// view = view.substr(strBegin * 2);
// }

// snippetPreview.text = view;
// // // Hack, part the second: Pad the remaining text with spaces.
// // const auto originalLen = input.size();
// // const auto unpaddedLen = snippetPreview.text.size();
// // if (unpaddedLen < originalLen)
// // {
// // snippetPreview.text.insert(snippetPreview.text.size(), originalLen + unpaddedLen, L' ');
// // }
if (strBegin != std::wstring::npos)
{
// Attempt 2
const auto bufferWidth = _GetMutableViewport().Width();
const auto cursorX = _activeBuffer().GetCursor().GetPosition().x;
const auto expectedLenTillEnd = strBegin + (bufferWidth - cursorX);
if (strBegin != std::wstring::npos)
{
view = view.substr(strBegin);
}
snippetPreview.text = view;
const auto originalSize{ snippetPreview.text.size() };
if (expectedLenTillEnd > originalSize)
{
snippetPreview.text.insert(originalSize, expectedLenTillEnd - originalSize, L' ');
}
// Trim them off.
view = view.substr(strBegin);
}
// How many spaces do we need, so that the preview exactly covers the entire
// prompt, all the way to the end of the viewport?
const auto bufferWidth = _GetMutableViewport().Width();
const auto cursorX = _activeBuffer().GetCursor().GetPosition().x;
const auto expectedLenTillEnd = strBegin + (bufferWidth - cursorX);
std::wstring preview{ view };
const auto originalSize{ preview.size() };
if (expectedLenTillEnd > originalSize)
{
// pad it out
preview.insert(originalSize, expectedLenTillEnd - originalSize, L' ');
}
snippetPreview.text = til::visualize_nonspace_control_codes(preview);
// Build our composition data
const auto len = snippetPreview.text.size();
// snippetPreview.attributes[0] = Microsoft::Console::Render::CompositionRange{ len, TextAttribute{} };
snippetPreview.attributes.clear();
snippetPreview.attributes.emplace_back(len, previewAttrs);
snippetPreview.cursorPos = len;
Expand Down

1 comment on commit 5647c6d

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@check-spelling-bot Report

🔴 Please review

See the 📜action log or 📝 job summary for details.

Unrecognized words (1)

preceeded

Previously acknowledged words that are now absent CRLFs Redir wcsicmp 🫥
To accept these unrecognized words as correct and remove the previously acknowledged and now absent words, you could run the following commands

... in a clone of the [email protected]:microsoft/terminal.git repository
on the dev/migrie/f/preview-input-2024 branch (ℹ️ how do I use this?):

curl -s -S -L 'https://raw.githubusercontent.com/check-spelling/check-spelling/v0.0.22/apply.pl' |
perl - 'https://github.com/microsoft/terminal/actions/runs/9405199294/attempts/1'
Available 📚 dictionaries could cover words (expected and unrecognized) not in the 📘 dictionary

This includes both expected items (2212) from .github/actions/spelling/expect/04cdb9b77d6827c0202f51acd4205b017015bfff.txt
.github/actions/spelling/expect/alphabet.txt
.github/actions/spelling/expect/expect.txt
.github/actions/spelling/expect/web.txt and unrecognized words (1)

Dictionary Entries Covers Uniquely
cspell:cpp/src/lang-jargon.txt 11 1 1
cspell:swift/src/swift.txt 53 1 1
cspell:gaming-terms/dict/gaming-terms.txt 59 1 1
cspell:monkeyc/src/monkeyc_keywords.txt 123 1 1
cspell:cryptocurrencies/cryptocurrencies.txt 125 1 1

Consider adding them (in .github/workflows/spelling2.yml) for uses: check-spelling/[email protected] in its with:

      with:
        extra_dictionaries:
          cspell:cpp/src/lang-jargon.txt
          cspell:swift/src/swift.txt
          cspell:gaming-terms/dict/gaming-terms.txt
          cspell:monkeyc/src/monkeyc_keywords.txt
          cspell:cryptocurrencies/cryptocurrencies.txt

To stop checking additional dictionaries, add (in .github/workflows/spelling2.yml) for uses: check-spelling/[email protected] in its with:

check_extra_dictionaries: ''
Errors (1)

See the 📜action log or 📝 job summary for details.

❌ Errors Count
❌ ignored-expect-variant 3

See ❌ Event descriptions for more information.

✏️ Contributor please read this

By default the command suggestion will generate a file named based on your commit. That's generally ok as long as you add the file to your commit. Someone can reorganize it later.

If the listed items are:

  • ... misspelled, then please correct them instead of using the command.
  • ... names, please add them to .github/actions/spelling/allow/names.txt.
  • ... APIs, you can add them to a file in .github/actions/spelling/allow/.
  • ... just things you're using, please add them to an appropriate file in .github/actions/spelling/expect/.
  • ... tokens you only need in one place and shouldn't generally be used, you can add an item in an appropriate file in .github/actions/spelling/patterns/.

See the README.md in each directory for more information.

🔬 You can test your commits without appending to a PR by creating a new branch with that extra change and pushing it to your fork. The check-spelling action will run in response to your push -- it doesn't require an open pull request. By using such a branch, you can limit the number of typos your peers see you make. 😉

If the flagged items are 🤯 false positives

If items relate to a ...

  • binary file (or some other file you wouldn't want to check at all).

    Please add a file path to the excludes.txt file matching the containing file.

    File paths are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your files.

    ^ refers to the file's path from the root of the repository, so ^README\.md$ would exclude README.md (on whichever branch you're using).

  • well-formed pattern.

    If you can write a pattern that would match it,
    try adding it to the patterns.txt file.

    Patterns are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your lines.

    Note that patterns can't match multiline strings.

Please sign in to comment.