private unsafe int LineCallback(git_diff_delta *delta, GitDiffHunk hunk, GitDiffLine line, IntPtr payload)
        {
            string decodedContent = LaxUtf8Marshaler.FromNative(line.content, (int)line.contentLen);

            string prefix;

            switch (line.lineOrigin)
            {
            case GitDiffLineOrigin.GIT_DIFF_LINE_ADDITION:
                AddedLines.Add(new Line(line.NewLineNo, decodedContent));
                LinesAdded++;
                prefix = Encoding.ASCII.GetString(new[] { (byte)line.lineOrigin });
                break;

            case GitDiffLineOrigin.GIT_DIFF_LINE_DELETION:
                DeletedLines.Add(new Line(line.OldLineNo, decodedContent));
                LinesDeleted++;
                prefix = Encoding.ASCII.GetString(new[] { (byte)line.lineOrigin });
                break;

            case GitDiffLineOrigin.GIT_DIFF_LINE_CONTEXT:
                prefix = Encoding.ASCII.GetString(new[] { (byte)line.lineOrigin });
                break;

            default:
                prefix = string.Empty;
                break;
            }

            AppendToPatch(prefix);
            AppendToPatch(decodedContent);
            return(0);
        }
示例#2
0
        public AddLineCommand(DesignPanel tdPanel, int start, int end, int position, bool isRow)
        {
            Init();
            AddedLines.Add(new PartitionLine(start, end, position, isRow));

            Start    = start;
            End      = end;
            Position = position;
            IsRow    = isRow;

            TDPanel          = tdPanel;
            TDPanel.Modified = true;
            CommandInfo      = "插入直线";
        }
示例#3
0
        public AddLineCommand(DesignPanel tdPanel, PartitionLine addedLine)
        {
            Init();
            AddedLines.Add(addedLine);

            Start    = addedLine.Start;
            End      = addedLine.End;
            Position = addedLine.Position;
            IsRow    = addedLine.IsRow;

            TDPanel          = tdPanel;
            TDPanel.Modified = true;
            CommandInfo      = "插入直线";
        }
        public void DeleteAll()
        {
            var     table = store.GetTable("lines");
            DBError error;
            var     results = table.Query(new NSDictionary(), out error);

            foreach (var result in results)
            {
                result.DeleteRecord();
            }
            store.Sync(null);
            AddedLines.Clear();
            DrawnLines.Clear();
        }
        internal void AppendGitDiffLine(GitDiffLine line, string patch)
        {
            switch (line.lineOrigin)
            {
            case GitDiffLineOrigin.GIT_DIFF_LINE_ADDITION:
                AddedLines.Add(new Line(line.NewLineNo, patch));
                LinesAdded++;
                lines.Add(new ContentChangeLine(line));
                break;

            case GitDiffLineOrigin.GIT_DIFF_LINE_DELETION:
                DeletedLines.Add(new Line(line.OldLineNo, patch));
                LinesDeleted++;
                lines.Add(new ContentChangeLine(line));
                break;
            }
        }