Formats/LibGit2Sharp.StatusEntry.formats.ps1xml

<?xml version="1.0" encoding="utf-8"?>
<!--
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<Configuration>
    <Controls>
        <Control>
            <Name>LibGit2SharpStatusEntry-GroupingFormat</Name>
            <CustomControl>
                <CustomEntries>
                    <CustomEntry>
                        <CustomItem>
                            <Frame>
                                <LeftIndent>4</LeftIndent>
                                <CustomItem>
                                    <ExpressionBinding>
                                        <ScriptBlock>
                                            if ( $_.IsStaged ) {
                                                'Staged for Commit'
                                            }
                                            else {
                                                'Working Directory'
                                            }
                                        </ScriptBlock>
                                    </ExpressionBinding>
                                    <NewLine/>
                                </CustomItem>
                            </Frame>
                        </CustomItem>
                    </CustomEntry>
                </CustomEntries>
            </CustomControl>
        </Control>
    </Controls>
    <ViewDefinitions>
        <View>
            <Name>LibGit2Sharp.StatusEntry</Name>
            <ViewSelectedBy>
                <TypeName>LibGit2Sharp.StatusEntry</TypeName>
            </ViewSelectedBy>
            <GroupBy>
                <PropertyName>IsStaged</PropertyName>
                <CustomControlName>LibGit2SharpStatusEntry-GroupingFormat</CustomControlName>
            </GroupBy>
            <TableControl>
                <TableHeaders>
                    <TableColumnHeader>
                        <Label>State</Label>
                        <Width>8</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>FilePath</Label>
                    </TableColumnHeader>
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <ScriptBlock>
                                    $ignored = ''
                                    if ( $_.IsIgnored ) {
                                        $ignored = 'i'
                                    }

                                    $added = ''
                                    if ( $_.IsAdded ) {
                                        $added = 'a'
                                    }

                                    $modified = ''
                                    if ( $_.IsModified ) {
                                        $modified = 'm'
                                    }

                                    $deleted = ''
                                    if ( $_.IsDeleted ) {
                                        $deleted = 'd'
                                    }

                                    $renamed = ''
                                    if ( $_.IsRenamed ) {
                                        $renamed = 'r'
                                    }

                                    $typeChanged = ''
                                    if ( $_.IsTypeChanged ) {
                                        $typeChanged = 't'
                                    }

                                    $unreadable = ''
                                    if ( $_.IsUnreadable ) {
                                        $unreadable = '?'
                                    }

                                    $conflicted = ''
                                    if ( $_.IsConflicted ) {
                                        $conflicted = '!'
                                    }

                                    '{0,1}{1,1}{2,1}{3,1}{4,1}{5,1}{6,1}{7,1}' -f $ignored, $added, $modified, $deleted, $renamed, $typeChanged, $unreadable, $conflicted
                                </ScriptBlock>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>FilePath</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>
    </ViewDefinitions>
</Configuration>