Что-то я так и не пойму. Как можно легко и непринужденно (используя hot keys например) выделить кусок кода (например несколько строк объявления) и отформатировать в виде таблицы в VS2005?
В духе:
int megaCounter = 0;
string megaString = "";
Type megaType = null;
Если кто знает, буду признателен за совет.
14.03.07 16:00: Перенесено из 'О жизни'
________________________________
When in Rome, do as the Romans do...
Re: Table like форматирование нескольких строчек кода
Здравствуйте, AleXXus, Вы писали:
AXX>Что-то я так и не пойму. Как можно легко и непринужденно (используя hot keys например) выделить кусок кода (например несколько строк объявления) и отформатировать в виде таблицы в VS2005?
Написать макрос?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Table like форматирование нескольких строчек кода
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, AleXXus, Вы писали:
AXX>>Что-то я так и не пойму. Как можно легко и непринужденно (используя hot keys например) выделить кусок кода (например несколько строк объявления) и отформатировать в виде таблицы в VS2005?
L>Написать макрос?
Дык вот я думал, может без него можно обойтись...
________________________________
When in Rome, do as the Romans do...
Re: Table like форматирование нескольких строчек кода
Здравствуйте, AleXXus, Вы писали:
AXX>Что-то я так и не пойму. Как можно легко и непринужденно (используя hot keys например) выделить кусок кода (например несколько строк объявления) и отформатировать в виде таблицы в VS2005?
AXX>В духе:
AXX>
Здравствуйте, Igor Sukhov, Вы писали:
IS>Здравствуйте, AleXXus, Вы писали:
AXX>>Что-то я так и не пойму. Как можно легко и непринужденно (используя hot keys например) выделить кусок кода (например несколько строк объявления) и отформатировать в виде таблицы в VS2005?
AXX>>Если кто знает, буду признателен за совет.
IS>а что Resharper этого еще не умеет ???
К своему стыду я как то все это время шел мимо него довольствуясь тем, что предоставляет студия
Намек понят, пошел смотреть чего он умеет
________________________________
When in Rome, do as the Romans do...
Re[2]: Table like форматирование нескольких строчек кода
Здравствуйте, Igor Sukhov, Вы писали:
IS>а что Resharper этого еще не умеет ???
На первый поверхностный взгляд складывается впечатление, что либо он предоставляет тоже самое, что есть сейчас в VS2005, но не было в 2003, и его просто продолжили развивать (плюс несколько фич), либо он действительно на голову превосходит все что есть в студии.
________________________________
When in Rome, do as the Romans do...
Re[2]: Table like форматирование нескольких строчек кода
Здравствуйте, xvost, Вы писали:
IS>>а что Resharper этого еще не умеет ??? X>До сих пор не умеет
Это же не вопрос эстетического характера — такое форматирование членов класса повышает не только читабельность кода и его анализируемость, но и креативность — набросал класс, добавил в него членов, сразу видно как их нужно правильно сгруппировать, какие будут методы и какие группы параметров в них сами "просятся".
Хотя и одна читабельность дорогого стоит
Так что — если до сих пор не умеет — надо учить.
* thriving in a production environment *
Re: Table like форматирование нескольких строчек кода
Если кому интересно, вот макрос для студии. Позволяет сделать то, чего хотелось.
Дареному "коню" в зубы не смотреть , ибо писался в лоб, без особых раздумий и в условиях жесточайшей битвы с синтаксисом VB
Забиндил макрос на alt+shift+Z — теперь достаточно выделить нужный кусок текста (так же как для операции комментирования например), щелкнуть комбинацию и усе.
Макрос умеет распозновать комменты и не трогать эти строки. Больше ничего кроме выравнивания по левой границе слов не умеет ибо пока не нужно
Плюс в нагрузку , туда же впихнул маленькие приятности, KillASPNET & IISReset. Вывел их, как кнопки на тулбар ну и теперь удобнее рестартовать aspnetwp и IIS при необходимости.
________________________________
When in Rome, do as the Romans do...
Здравствуйте, Блудов Павел, Вы писали:
БП>Здравствуйте, AleXXus!
AXX>>Если кому интересно, вот макрос для студии. Позволяет сделать то, чего хотелось. БП>Работает!
БП>Правда страшно глючит, если выше по коду есть схлопнутый #region.
Мля, что-то я про них забыл совсем, когда "тестил" , а в "бою" пока видимо до того не дошло. Как минутка выдастся — поправлю.
Thanks.
________________________________
When in Rome, do as the Romans do...
Здравствуйте, Блудов Павел, Вы писали:
БП>Здравствуйте, AleXXus!
AXX>>Если кому интересно, вот макрос для студии. Позволяет сделать то, чего хотелось. БП>Работает!
БП>Правда страшно глючит, если выше по коду есть схлопнутый #region.
Чтоб весь не выкладывать файл, т.к. у меня он и называется иначе, и еще другие макросы есть, вот только фикс.
Как говориться — бага не моя , оно само
На 51-й и 52-й строках надо поменять
Dim startLine = selection.TopLine
Dim endLine = selection.BottomLine
на
Dim startLine = selection.TopPoint.Line
Dim endLine = selection.BottomPoint.Line
Почему-то TopLine & BottomLine возвращяли аккурат строки находящиеся внутри региона и вовсе не то, что было на деле выделено
Еще осталась бага, когда в выделение попадает схлопнутый регион, но это уже попозжа, сейчас пока времени нестало, может ближе к вечеру.
________________________________
When in Rome, do as the Romans do...
Здравствуйте, AleXXus, Вы писали:
AXX>Еще осталась бага, когда в выделение попадает схлопнутый регион, но это уже попозжа, сейчас пока времени нестало, может ближе к вечеру.
Здравствуйте, AleXXus, Вы писали:
AXX>Если кому интересно, вот макрос для студии.
Да, помимо
int _outputValue = -2;
double _inValue = 10;
Он еще и вот это могёт
public abstract class Person : EditableObject
{
public abstract int ID { get; }
public abstract string FirstName { get; set; }
public abstract string LastName { get; set; }
public abstract DateTime Birthday { get; set; }
}
сделать в
public abstract class Person : EditableObject
{
public abstract int ID { get; }
public abstract string FirstName { get; set; }
public abstract string LastName { get; set; }
protected abstract DateTime Birthday { get; set; }
}
Ну хотя это и так, в принципе понятно.
________________________________
When in Rome, do as the Romans do...
Здравствуйте, Odi$$ey, Вы писали:
OE>Здравствуйте, AleXXus, Вы писали:
AXX>>Ага. Вот fixed version
OE>хм, удаляться перестал, но и не выравнивается (другие куски кода равняет, этот нет)
Хм, глюк. Тестил на приведенном фрагменте и вперемешку.
Сейчас еще раз гляну.
________________________________
When in Rome, do as the Romans do...
Здравствуйте, Odi$$ey, Вы писали:
OE>Здравствуйте, AleXXus, Вы писали:
AXX>>Ага. Вот fixed version
OE>хм, удаляться перестал, но и не выравнивается (другие куски кода равняет, этот нет)
Здравствуйте, Igor Sukhov, Вы писали:
IS>>>а что Resharper этого еще не умеет ??? X>>До сих пор не умеет IS>Это же не вопрос эстетического характера — такое форматирование членов класса повышает не только читабельность кода и его анализируемость, но и креативность — набросал класс, добавил в него членов, сразу видно как их нужно правильно сгруппировать, какие будут методы и какие группы параметров в них сами "просятся". IS>Хотя и одна читабельность дорогого стоит IS>Так что — если до сих пор не умеет — надо учить.
Гхм. Мне вот не по душе, что…
int megaCounter = 0;
string megaString = "";
Type megaType = null;
…при добавлении нового поля…
int megaCounter = 0;
string megaString = "";
Type megaType = null;
BlaBlaBlaBla fooooooooooo = null;
…изменяется весь регион описания полей:
int megaCounter = 0;
string megaString = "";
Type megaType = null;
BlaBlaBlaBla fooooooooooo = null;
То есть, потенциально, "всё" (что уже написано) зависит от будущего изменения. И свновь добавленное поле (со всойством) может сильно изменить "внешний вид" всего файла.
... << RSDN@Home 1.2.0 alpha rev. 675>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Здравствуйте, Odi$$ey, Вы писали:
OE>Здравствуйте, AleXXus, Вы писали:
OE>>>хм, удаляться перестал, но и не выравнивается (другие куски кода равняет, этот нет) AXX>>Мистика
OE>понял, у меня в этом месте между словами — табуляции, с ними не работает
Thanks.
Scheduled
________________________________
When in Rome, do as the Romans do...
Здравствуйте, _FRED_, Вы писали:
_FR>То есть, потенциально, "всё" (что уже написано) зависит от будущего изменения. И свновь добавленное поле (со всойством) может сильно изменить "внешний вид" всего файла.
Какие предложения?
________________________________
When in Rome, do as the Romans do...
Re[6]: Table like форматирование нескольких строчек кода
Здравствуйте, AleXXus, Вы писали:
_FR>>То есть, потенциально, "всё" (что уже написано) зависит от будущего изменения. И свновь добавленное поле (со всойством) может сильно изменить "внешний вид" всего файла.
AXX>Какие предложения?
Это просто выражение ИМХО на то, что оно "повышает" :о)) Ведь предложение не использовать такой стиль не прокатит? :о)) Я его и не буду высказывать.
... << RSDN@Home 1.2.0 alpha rev. 675>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[5]: Table like форматирование нескольких строчек кода
_FR>То есть, потенциально, "всё" (что уже написано) зависит от будущего изменения. И свновь добавленное поле (со всойством) может сильно изменить "внешний вид" всего файла.
Да, изменяется, становвясь более читабельным. И что в этом плохого ? И что такое "внешний вид файла" ?
... << RSDN@Home 1.2.0 alpha rev. 0>>
* thriving in a production environment *
Re[7]: Table like форматирование нескольких строчек кода
Здравствуйте, _FRED_, Вы писали:
_FR>Здравствуйте, AleXXus, Вы писали:
_FR>>>То есть, потенциально, "всё" (что уже написано) зависит от будущего изменения. И свновь добавленное поле (со всойством) может сильно изменить "внешний вид" всего файла.
AXX>>Какие предложения?
_FR>Это просто выражение ИМХО на то, что оно "повышает" :о)) Ведь предложение не использовать такой стиль не прокатит? :о)) Я его и не буду высказывать.
Точно
________________________________
When in Rome, do as the Romans do...
Здравствуйте, Odi$$ey, Вы писали:
OE>Здравствуйте, AleXXus, Вы писали:
OE>>>хм, удаляться перестал, но и не выравнивается (другие куски кода равняет, этот нет) AXX>>Мистика
OE>понял, у меня в этом месте между словами — табуляции, с ними не работает
Здравствуйте, Igor Sukhov, Вы писали:
_FR>>То есть, потенциально, "всё" (что уже написано) зависит от будущего изменения. И свновь добавленное поле (со всойством) может сильно изменить "внешний вид" всего файла. IS>Да, изменяется, становвясь более читабельным.
Более читабельным он точно не становится, т.к. в результате тип члена сильно уезжает от имени переменной. Тем стамым становится сложнее понять какого типа та или иная переменная.
IS>И что в этом плохого ? И что такое "внешний вид файла" ?
Re[3]: Table like форматирование нескольких строчек кода
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, Igor Sukhov, Вы писали:
_FR>>>То есть, потенциально, "всё" (что уже написано) зависит от будущего изменения. И свновь добавленное поле (со всойством) может сильно изменить "внешний вид" всего файла. IS>>Да, изменяется, становвясь более читабельным.
L>Более читабельным он точно не становится, т.к. в результате тип члена сильно уезжает от имени переменной. Тем стамым становится сложнее понять какого типа та или иная переменная.
Во-первых, тип остается на своем месте — никуда он не уезжает. Т.е. не то что сильно уезжает — он вообще стоит где стоял. Все таки тип члена.
Во-вторых, я не вижу явной отрицательной связи между увеличением (в разумных пределах) расстояния между типом переменной и ее имени и читабельности блока кода.
В-третьих, мне по точный тип часто вообще не нужен, когда я просматриваю исходники — я смотрю названия полей, и часто, тип можно вывести из названия или названия предыдущего/следущего поля. Не программерская это забота — это забота компилятора. Или решарпера и компилятора.
Я конечно не могу говорить за всех сразу (за это говорят оценки в данной теме), но наличие колонок в газетах, и правила юзабилити указывающие, что элементы управления "выстроенные" вертикально и выровненные по одному из краев повышают скорость восприятия информации, по моему говорят в пользу подхода AleXXus-а.
P.S. Кстати оно сейчас и чуть шустрее стало. EnvDTE объекты (selection & editPoint) заметно притормаживают. Реорганизовал малость, убрал пару действий с editPoint и стало побыстрее.
________________________________
When in Rome, do as the Romans do...
Re[2]: Table like форматирование нескольких строчек кода
Здравствуйте, AleXXus, Вы писали:
AXX>>Если кому интересно, вот макрос для студии. Позволяет сделать то, чего хотелось.
AXX>Немного обновил — new version.
Наконец-то руки дошли опробовать. С чувством пронесся по десятку файлов, форматируя как бешеный. Получил сравнимое удовольствие.
Спасибо.
* thriving in a production environment *
Re[3]: []Table like форматирование нескольких строчек кода
Здравствуйте, AleXXus, Вы писали:
AXX>Здравствуйте, AleXXus, Вы писали:
AXX>>Если кому интересно, вот макрос для студии. Позволяет сделать то, чего хотелось.
AXX>Немного обновил — new version.
нашел bug — если до выполнения макроса курсор находится на следущей строке (в начале следущей строки) — то после того как макрос отработал прибиваются символы (символ) на строке с курсором. Не порядок.
Here's the screenshot:
step 1 — до
step 2 — выделяем блок код (заметь, курсор на строку ниже выделеного текста)
step 3 — после. Закрывающая скобка исчезла.
AXX>Научил переваривать такие вещи, как:
надо учить переваривать дальше, или снимать новую фильму O Bracket, Where Art Thou?
* thriving in a production environment *
Re[4]: Table like форматирование нескольких строчек кода
Здравствуйте, Igor Sukhov, Вы писали:
IS>Здравствуйте, AleXXus, Вы писали:
AXX>>>Если кому интересно, вот макрос для студии. Позволяет сделать то, чего хотелось.
AXX>>Немного обновил — new version.
IS>Наконец-то руки дошли опробовать. С чувством пронесся по десятку файлов, форматируя как бешеный. Получил сравнимое удовольствие.
IS>Спасибо.
You are welcome
________________________________
When in Rome, do as the Romans do...
Re[4]: []Table like форматирование нескольких строчек кода
Здравствуйте, Igor Sukhov, Вы писали:
IS>нашел bug — если до выполнения макроса курсор находится на следущей строке (в начале следущей строки) — то после того как макрос отработал прибиваются символы (символ) на строке с курсором. Не порядок.
Nice bug
Посмотрю в понедельник и обновлю, как исправлю.
________________________________
When in Rome, do as the Romans do...
Re[4]: []Table like форматирование нескольких строчек кода
Здравствуйте, Igor Sukhov, Вы писали:
IS>нашел bug — если до выполнения макроса курсор находится на следущей строке (в начале следущей строки) — то после того как макрос отработал прибиваются символы (символ) на строке с курсором. Не порядок.
P.S. ... этот забавный ActiveDocument.Selection...
________________________________
When in Rome, do as the Romans do...
Re[5]: []Table like форматирование нескольких строчек кода
От:
Аноним
Дата:
07.05.07 08:28
Оценка:
Здравствуйте, AleXXus, Вы писали:
AXX>Здравствуйте, Igor Sukhov, Вы писали:
IS>>нашел bug — если до выполнения макроса курсор находится на следущей строке (в начале следущей строки) — то после того как макрос отработал прибиваются символы (символ) на строке с курсором. Не порядок.
AXX>Должно быть лучше теперь — Fixed version.
AXX>P.S. ... этот забавный ActiveDocument.Selection...
Вот такие строчки не форматируюся
private static int nDay= 1;
private static int nMonth =12;
Re[6]: []Table like форматирование нескольких строчек кода
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, AleXXus, Вы писали:
AXX>>Здравствуйте, Igor Sukhov, Вы писали:
IS>>>нашел bug — если до выполнения макроса курсор находится на следущей строке (в начале следущей строки) — то после того как макрос отработал прибиваются символы (символ) на строке с курсором. Не порядок.
AXX>>Должно быть лучше теперь — Fixed version.
AXX>>P.S. ... этот забавный ActiveDocument.Selection...
А>Вот такие строчки не форматируюся
А>
А>private static int nDay= 1;
А>private static int nMonth =12;
А>
Дело в том, что макрос просто по пробелам всю строку разбирает на несколько слов и потом выравнивает по левой границе слов. Конкретно знак "=" он не ловит.
Когда в студии пишете и включен автоформат, то при наборе ";" в конце строки, студия автоматом поставит пробелы, и позже, написав несколько строк, уже можно выровнять макросом.
Для таких строк можно сделать так:
— выделить их, нажать Ctrl-K, Ctrl-F — студия отформатирует в соотв. с настроенными правилами и после этого можно выравнивать макросом.
________________________________
When in Rome, do as the Romans do...
Re[2]: Table like форматирование нескольких строчек кода
Здравствуйте, mjau, Вы писали:
M>Здравствуйте, AleXXus, Вы писали:
AXX>>Если кому интересно, вот макрос для студии. Позволяет сделать то, чего хотелось.
M>Я правильно понимаю, что форматирует оно только пробелами? А можно сделать так, чтобы форматировалось табами?
Да, на данный момент именно пробелы вставляются для выравнивания. В принципе, конечно можно изменить макрос под себя и вставлять табы вместо пробелов, но честно говоря, я даже не представляю, что будет, если ваш код откроет человек, у которого другие настройки. У вас TabSize == 2, а у него будет 4 например?
Вообщем видимо дело вкуса, если сильно хочется — меняйте макрос, как угодно под себя , для того он и выкладывался.
________________________________
When in Rome, do as the Romans do...
Re[4]: Table like форматирование нескольких строчек кода
Отличный макрос!
Нашёл баг — если до форматирования в строке встречаются табы, то они заменяются на пробелы(гут), но форматирование в результате кривое. Повторное форматирование того же исходника всё приводит в правильный вид.
Re[5]: Table like форматирование нескольких строчек кода
Здравствуйте, Denis K., Вы писали:
DK>Здравствуйте, AleXXus, Вы писали:
DK>Отличный макрос! DK>Нашёл баг — если до форматирования в строке встречаются табы, то они заменяются на пробелы(гут), но форматирование в результате кривое. Повторное форматирование того же исходника всё приводит в правильный вид.
Немного не понял. Как повторить то? У меня вроде во всех строках табы вначале, но после первого же форматирования макросом оно не сбивается. Может пара скринов поможет?
________________________________
When in Rome, do as the Romans do...
Re[2]: Table like форматирование нескольких строчек кода
От:
Аноним
Дата:
07.09.07 04:51
Оценка:
Здравствуйте, AleXXus, Вы писали:
Что-то он меня совсем не работает. Как исталлировать макрос в студию?
Re[6]: Table like форматирование нескольких строчек кода
Здравствуйте, AleXXus, Вы писали:
AXX>Немного не понял. Как повторить то? У меня вроде во всех строках табы вначале, но после первого же форматирования макросом оно не сбивается. Может пара скринов поможет?
Скриншоты здесь.
В опциях — заменять табы на пробелы, в одном табе — 2 пробела.
Re[3]: Table like форматирование нескольких строчек кода
AXX>>Если кому интересно, вот макрос для студии. Позволяет сделать то, чего хотелось.
Не прошло и сто лет, как надоело мне, что макрос не хендлит строки и коменты толком. Допилил.
Последняя версия здесь.
Теперь может такое:
string _myString = "test"; //this should work nowstring _testStr = "test1 fdsdfds dsdfd"as string;
string _testVal = "test123"as string; //comment here
List<int> _testList = null; //yet another example commentstring _sampleStr = "shouldn't be taken into account";
string _sampleStr2 = "as well as this one";
MyKVP<int, int> _kvPairs = new MyKVP<int, Type>(); //and more
RunnerBase _runner = new RunnerBase();
________________________________
When in Rome, do as the Romans do...
Re[4]: Table like форматирование нескольких строчек кода
Здравствуйте, AleXXus, Вы писали:
AXX>>>Если кому интересно, вот макрос для студии. Позволяет сделать то, чего хотелось.
AXX>Не прошло и сто лет, как надоело мне, что макрос не хендлит строки и коменты толком. Допилил. AXX>Последняя версия здесь.
Что-то я подумал подумал, и сделал этот макрос extension'ом для студии. Так он сильно легче деплоится и сильно быстрее работает .
Зашитая комбинация кнопок Ctrl + Alt. Когда обе нажаты выделенный текст форматируется.
Здравствуйте, AleXXus, Вы писали:
AXX>Что-то я подумал подумал, и сделал этот макрос extension'ом для студии. Так он сильно легче деплоится и сильно быстрее работает .
А про тех, кто в 2к3-2к8 не подумали?
Re[6]: Table like форматирование нескольких строчек кода
Здравствуйте, баг, Вы писали:
баг>Здравствуйте, AleXXus, Вы писали:
AXX>>Что-то я подумал подумал, и сделал этот макрос extension'ом для студии. Так он сильно легче деплоится и сильно быстрее работает . баг>А про тех, кто в 2к3-2к8 не подумали?
Упс, а что-то даже не подумал, да
Ну... макрос то там точно работает . Баг-фиксы последние в последней версии макроса есть. А экстеншн (а есть ли они там? или там только add-in?)... попозже может быть, сейчас пока времени честно говоря нету.
________________________________
When in Rome, do as the Romans do...
Re[4]: Table like форматирование нескольких строчек кода
Здравствуйте, AleXXus, Вы писали:
AXX>Не прошло и сто лет, как надоело мне, что макрос не хендлит строки и коменты толком. Допилил. AXX>Последняя версия здесь.
А Решарпер по-прежнему такое не умеет делать Я как раз разработчиков относительно недавно спрашивал
Здравствуйте, AleXXus, Вы писали:
AXX>Что-то я так и не пойму. Как можно легко и непринужденно (используя hot keys например) выделить кусок кода (например несколько строк объявления) и отформатировать в виде таблицы в VS2005?
AXX>В духе:
AXX>
Re[5]: Table like форматирование нескольких строчек кода
От:
Аноним
Дата:
07.03.12 13:45
Оценка:
Здравствуйте, AleXXus, Вы писали:
AXX>>>Если кому интересно, вот макрос для студии. Позволяет сделать то, чего хотелось.
AXX>Не прошло и сто лет, как надоело мне, что макрос не хендлит строки и коменты толком. Допилил. AXX>Последняя версия здесь.
Фикс.
вместо:
If (line(l - 1).Equals(","c)) Then tempWord += line(l) : Continue For
нужно
If (line(l - 1).Equals(","c) And Not line(l).Equals(" "c)) Then tempWord += line(l) : Continue For
Re[6]: Table like форматирование нескольких строчек кода
еще не пробовал, но штука полезная, сам так форматирую
так что пасиба AleXXus
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Re: Table like форматирование нескольких строчек кода