Пользуясь на версии 2009 "в лоб" столкнулся с "уплыванием" строк после вставляемых комментариев, вида
было:
X++:
InventSum inventSum;
InventDim inventDim;
InventTable inventTable;
стало:
X++:
//<-- begin
InventSum inventSum;
//--> end
InventDim inventDim;
InventTable inventTable;
Исправляю это так:
X++:
/// <summary>
/// Обрамляет выделенную область в тексте комментарием об авторстве и дате изменения данного блока текста
/// </summary>
/// <param name="e">
/// текущий редактор
/// </param>
/// <remarks>
/// Для версии 2009
/// </remarks>
#define.StartComment("//--> \%1, \%2")
#define.EndComment("//<-- \%1, \%2")
public void comments_insertDevComment(Editor e)
{
int start = e.selectionStartLine();
int end = e.selectionEndLine();
int firstSym;
str tmpLine;
;
e.gotoLine(start);
firstSym = strnfind(e.currentLine(), " ", 1, strlen(e.currentLine()));
e.unmark();
//Нижний комментарий
e.gotoLine(end + 1);
e.gotoCol(0);
e.insertLines("\n");
e.gotoLine(end +1);
e.gotoCol(0);
e.insertLines(strrep(" ", firstSym - 1) +
strfmt(#EndComment,
strupr(curUserId()),
date2str(today(),123,2,1,3,1,4, DateFlags::FormatAll )));
//Верхний комментарий
e.gotoCol(0);
e.gotoLine(start);
e.gotoCol(0);
e.insertLines("\n");
e.gotoLine(start);
e.gotoCol(0);
e.insertLines(strrep(" ", firstSym - 1) +
strfmt(#StartComment,
strupr(curUserId()),
date2str(today(),123,2,1,3,1,4, DateFlags::FormatAll )));
e.gotoLine(end + 3);
e.gotoCol(firstSym);
}