a8e4bedae3
## Summary of the Pull Request Introduces `til::rle`, a vector-like container which stores elements of type T in a run length encoded format. This allows efficient compaction of repeated elements within the vector. ## References * #8000 - Supports buffer rewrite work. A re-use of `til::rle` will be useful as a column counter as we pursue NxM storage and presentation. * #3075 - The new iterators allow skipping forward by multiple units, which wasn't possible under `TextBuffer-/OutputCellIterator`. Additionally it also allows a bulk insertions. * #8787 and #410 - High probability this should be `pmr`-ified like `bitmap` for things like `chafa` and `cacafire` which are changing the run length frequently. ## PR Checklist * [x] Closes #8741 * [x] I work here. * [x] Tests added. * [x] Tests passed. ## Validation Steps Performed * [x] Ran `cacafire` in `OpenConsole.exe` and it looked beautiful * [x] Ran new suite of `RunLengthEncodingTests.cpp` Co-authored-by: Michael Niksa <miniksa@microsoft.com>
41 lines
1.8 KiB
XML
41 lines
1.8 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<PropertyGroup>
|
|
<ProjectGuid>{531C23E7-4B76-4C08-8BBD-04164CB628C9}</ProjectGuid>
|
|
<Keyword>Win32Proj</Keyword>
|
|
<RootNamespace>TextBufferUnitTests</RootNamespace>
|
|
<ProjectName>TextBuffer.Unit.Tests</ProjectName>
|
|
<TargetName>TextBuffer.Unit.Tests</TargetName>
|
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
</PropertyGroup>
|
|
<Import Project="$(SolutionDir)src\common.build.pre.props" />
|
|
<ItemGroup>
|
|
<ClCompile Include="ReflowTests.cpp" />
|
|
<ClCompile Include="TextColorTests.cpp" />
|
|
<ClCompile Include="TextAttributeTests.cpp" />
|
|
<ClCompile Include="UnicodeStorageTests.cpp" />
|
|
<ClCompile Include="..\precomp.cpp">
|
|
<PrecompiledHeader>Create</PrecompiledHeader>
|
|
</ClCompile>
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<ProjectReference Include="..\..\..\types\lib\types.vcxproj">
|
|
<Project>{18d09a24-8240-42d6-8cb6-236eee820263}</Project>
|
|
</ProjectReference>
|
|
<ProjectReference Include="..\lib\bufferout.vcxproj">
|
|
<Project>{0cf235bd-2da0-407e-90ee-c467e8bbc714}</Project>
|
|
</ProjectReference>
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<ClInclude Include="..\precomp.h" />
|
|
</ItemGroup>
|
|
<ItemDefinitionGroup>
|
|
<ClCompile>
|
|
<AdditionalIncludeDirectories>..;$(SolutionDir)src\inc;$(SolutionDir)src\inc\test;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
</ClCompile>
|
|
</ItemDefinitionGroup>
|
|
<!-- Careful reordering these. Some default props (contained in these files) are order sensitive. -->
|
|
<Import Project="$(SolutionDir)src\common.build.post.props" />
|
|
<Import Project="$(SolutionDir)src\common.build.tests.props" />
|
|
</Project>
|