// ブックマークを追加、すでにあるなら 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); } } } }