Exemplo n.º 1
0
        public void ChangeLine(int editLineNumber, int dline)
        {
            if (dline != 0)
            {
                BookmarkPrims bookmarkPrims = GetActiveBookmarkPrims();
                // BookmarkPrims newBookmarkPrims = new BookmarkPrims(bookmarkPrims.GetCommentsManager());
                List <int> keyList = new List <int>();
                foreach (var bookmarkPrimIt in bookmarkPrims)
                {
                    if (bookmarkPrimIt.Key >= editLineNumber)
                    {
                        keyList.Add(bookmarkPrimIt.Key);
                    }
                }
                foreach (var key in keyList)
                {
                    BookmarkPrim bookmarkPrim = null;
                    bookmarkPrims.TryRemove(key, out bookmarkPrim);
                    bookmarkPrims.TryAdd(key + dline, bookmarkPrim);
                    // newBookmarkPrims.TryAdd(bookmarkPrimIt.Key + dline, bookmarkPrim);
                }

                /* foreach (var bookmarkPrimIt in newBookmarkPrims)
                 * {
                 *  bookmarkPrims.TryAdd(bookmarkPrimIt.Key, bookmarkPrimIt.Value);
                 * } */
                Save();
                bookmarkPrims.GetCommentsManager().SetBookmark(bookmarkPrims);
                RedrawToolWindow();
            }
        }
Exemplo n.º 2
0
        // #ducoment BookmarkAdjustment
        private BookmarkPrims BookmarkAdjustment(BookmarkPrims bookmarkPrims)
        {
            BookmarkPrims newBookmarkPrims = bookmarkPrims;

            if (bookmarkPrims != null)
            {
                // bookmarkPrims.GetCommentsManager().GetView().TextDataModel.DocumentBuffer.Properties.TryGetProperty(typeof(ITextDocument), out ITextDocument document);
                IWpfTextView  textView      = bookmarkPrims.GetCommentsManager().GetView();
                SnapshotPoint caretPosition = textView.Caret.Position.BufferPosition;
                string        documentText  = caretPosition.Snapshot.GetText();
                if (documentText != null)
                {
                    // document のテキストを取得する
                    List <string> doclist   = new List <string>();
                    StringReader  strReader = new StringReader(documentText);
                    doclist.Add(@"TOF");
                    while (true)
                    {
                        string line = strReader.ReadLine();
                        if (line == null)
                        {
                            break;
                        }
                        doclist.Add(Util.GetWithoutUselessCharacter(line));
                    }
                    doclist.Add(@"EOF");
                    doclist.Add(@"EOF2");
                    // doctext[0] = "TOF"
                    // doctext[最後の行+1] = "EOF"
                    string[] doctext = doclist.ToArray();

                    newBookmarkPrims = new BookmarkPrims(bookmarkPrims.GetCommentsManager());
                    foreach (var bookmarkPrim in bookmarkPrims)
                    {
                        int lineNo = bookmarkPrim.Key;
                        SetAdjustmentLine(doctext, ref lineNo, bookmarkPrim.Value);
                        bookmarkPrim.Value.m_line0 = doctext[lineNo];
                        bookmarkPrim.Value.m_line1 = doctext[lineNo + 1];
                        bookmarkPrim.Value.m_line2 = doctext[lineNo + 2];
                        newBookmarkPrims.TryAdd(lineNo, bookmarkPrim.Value);
                    }
                    m_FileBookmarkPrims[bookmarkPrims.GetCommentsManager().RelativeFileName()] = newBookmarkPrims;
                    Save();
                }
            }
            return(newBookmarkPrims);
        }
Exemplo n.º 3
0
        public void DelBookmark()
        {
            MyBookmarkManager.Log("DelBookmark");

            BookmarkPrims bookmarkPrims = GetActiveBookmarkPrims();
            int           lineNo        = GetCursorLineNo();

            if (lineNo >= 1)
            {
                MyBookmarkManager.Log("bookmarkPrims.Remove lineNo=" + lineNo);
                BookmarkPrim prim = null;
                bookmarkPrims.TryRemove(lineNo, out prim);
                // bookmarkPrims.GetCommentsManager().DelBookmark(lineNo);
                Save();
                bookmarkPrims.GetCommentsManager().SetBookmark(bookmarkPrims);
                RedrawToolWindow();
                EnvDTE.TextSelection textSelection = GetTextSelection();
                if (textSelection != null)
                {
                    textSelection.GotoLine(GetCursorLineNo() + 1);
                }
            }
        }
Exemplo n.º 4
0
        // ブックマークを追加、すでにあるなら edit する
        public void AddEditBookmark()
        {
            // EnvDTE.TextDocument textDocument = GetTextDocument();
            EnvDTE.TextSelection textSelection = GetTextSelection();
            if (textSelection != null)
            {
                Int32 lineNo = GetCursorLineNo();
                if (lineNo >= 1)
                {
                    BookmarkPrims bookmarkPrims = GetActiveBookmarkPrims();
                    BookmarkPrim  prim          = null;
                    if (bookmarkPrims.ContainsKey(lineNo))
                    {       // BookmarkPrim を edit する
                        prim = bookmarkPrims[lineNo];
                    }
                    else
                    {       // BookmarkPrim 作る
                        prim           = new BookmarkPrim();
                        prim.m_comment = "test";
                        textSelection.SelectLine();
                        prim.m_line0 = textSelection.Text;

                        if (lineNo + 1 <= textSelection.BottomLine)
                        {
                            textSelection.GotoLine(lineNo + 1);
                            textSelection.Cancel();
                            textSelection.SelectLine();
                            prim.m_line1 = textSelection.Text;
                        }
                        else
                        {
                            prim.m_line1 = "EOF";
                        }

                        if (lineNo + 2 <= textSelection.BottomLine)
                        {
                            textSelection.GotoLine(lineNo + 2);
                            textSelection.Cancel();
                            textSelection.SelectLine();
                            prim.m_line2 = textSelection.Text;
                        }
                        else
                        {
                            prim.m_line2 = "EOF";
                        }

                        bookmarkPrims.TryAdd(lineNo, prim);
                    }
                    EditBookmark(prim);
                    if (prim.m_comment == "")
                    {
                        DelBookmark();
                    }
                    else
                    {
                        bookmarkPrims.TryAdd(lineNo, prim);
                        bookmarkPrims.GetCommentsManager().SetBookmark(bookmarkPrims);
                        Save();
                        RedrawToolWindow();
                        textSelection.GotoLine(lineNo + 1);
                    }
                }
            }
        }