Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > что вы думаете об этой утилите для С++


Автор: unit0 29.7.2004, 15:24
http://www.treeredactor.narod.ru/ - здесь вы можете скачать первую версию утилиты, предназначенной для редактирования с-файлов.

Особенность этого редактора - это представление всей программы в виде дерева, где узлами являются операторы if, else, for, while, switch, функции, классы - любые языковые конструкции использующие "{}". По идее, это более удобно для редактирования сложных функций с большим числом вложенных операторов if, for, чем работа с текстовым файлом.

Мне интересно узнать: что вы думаете, об этой программе и нужно ли сделать аналог для других языков, например Pascal.

Автор: Дрон 29.7.2004, 18:51
Вообще прикольно!
Только ты опоздал чуть-чуть, т.к. в Visual Studio .Net уже такой принцип реализован.

Что касается твоей проги, то лучше убрать символы папок и горизонтальные линии, т.к. они загромождают экран. Также немного непривычно выглядит отсутствие символов { и }.
Можно ещё добавить возможность сворачивать комментарии между /* и */

На некоторых файлах оно у меня глючило -- выдавало acess-violation при загрузке файла.
Редактировать и сохранять я не пробовал.

ЗЫ: Тему, наверно, стоит перенести в готовые и разрабатываемые проекты.

Автор: chipset 30.7.2004, 00:19
Цитата
Только ты опоздал чуть-чуть, т.к. в Visual Studio .Net уже такой принцип реализован.

Там вроде не так чуть-чуть, не древовидная а просто блоки сворачиваются, если что то не правильно понял пардон smile.gif
Хотя я все равно Visual Studio + Visual Assist X ни за какие шиши не променяю.. tounge.gif

Автор: Дрон 30.7.2004, 01:51
chipset
Строго говоря, ты прав, там не древовидная, хотя особой разницы я не вижу smile.gif

Автор: chipset 30.7.2004, 02:17
Дрон
Особой разницы то и нету.. Но вот если хотя бы AutoComplete в unit0'ской проге?
Может в версии 2.0 и будет но пока мы будем юзать VS smile.gif

Автор: unit0 30.7.2004, 15:47
Цитата
Там вроде не так чуть-чуть, не древовидная а просто блоки сворачиваются, если что то не правильно понял пардон


В VS можно все блоки сворачивать, или как например в новом Bilder, только функции, классы и т. п, но не if, for ?

Автор: chipset 30.7.2004, 18:06
user posted image user posted image
Все блоки ({}) можно сворачивать..

Автор: chipset 30.7.2004, 18:32
В шарпе есть ещё такая штука как #region
user posted image
user posted image

А вообще то неплохая ведь прога! Попробуй выложи на downloads.com...
Только сделай для начала путь к компилятору, и поддержку шарпа..
ИМХО для тех кто не смогут купить, и не захотят брать пиратский ( wow.gif ) твой редактор будет спасением smile.gif

Автор: unit0 2.8.2004, 22:18
Сейчас делаю EDIT для TreeRedactor.
Внес изменения в вид дерева - напротив отдельных операторов появился значок. См. рис.

user posted image

Кроме обычного выделения текста, можно будет выделять операторы, щелкая на этот значок - если это простой оператор, или на значок папки.
Теперь, например, чтобы передвинуть один оператор вверх можно будет просто схватить с помощью LMouse, предварительно не выделяя, и переместить. В общем, все как в Explorer-е.
В том числе можно будет выбрать несколько операторов сразу, используя Ctrl+LMouse.

Но возникает вопрос - можно ли разрешить пользователю выбирать любые операторы, из любых частей программы?
И если да, то как их потом объединять и вставлять?
Сам я думаю пока сделать доступным выделение нескольких операторов сразу, только если они принадлежат одному блоку.

Ваше мнение?

Также хочу сделать окно для EDIT с несколькими ячейками, куда можно будет бросать и извлекать части программы.

to Chipset: не расскажешь, как в VS копируются блоки операторов - что бы быстро его скопировать целиком его надо свернуть?

Добавлено @ 22:20
Если рисунок не видно.
Смотрите на

http://www.treeredactor.narod.ru/2.gif

Автор: C/L 2.8.2004, 23:08
Цитата(chipset @ 30.7.2004, 02:17)
Дрон
Особой разницы то и нету.. Но вот если хотя бы AutoComplete в unit0'ской проге?
Может в версии 2.0 и будет но пока мы будем юзать VS smile.gif

Больше всего я ненавижу VC++(6-ая версия) за "Complete World" и "List members" - есть много случаев когда они не действуют. Если ты, unit0, исправишь это в своей проге я с удовольствием ее куплю. Хотя и так прога очень даже неплохая, тем более для бесплатной.

Автор: Fantasist 3.8.2004, 00:41
Ненавижу narod.ru. 412 kb качаются 12 минут. После того, как я привык, что 1.5 Мб закачиваются за 20 сек, весьма неприятно.

Цитата
что вы думаете, об этой программе


Ну во-первых, пока глюков многовато. Парситься не везде корректно, при попытке редакирования совршает какие-то не очень понятные действия.

Во вторых, я бы предпочел, чтобы на каждую строчку не было бы горизонтальной линии, а была бы она только по завершении блока. То есть типа этого:

Код

+ CIFZCalWriter::CIFZCalWriter()    
|
|        m_bInitialised = FALSE;
|
|        m_OutlookApp = NULL;
|
| -- + if (0)  
|     |      m_Item = 0x0934FF;
|     |      
|     |      m_iTest = 1;
|     -----
|        m_OutlookNameSpace  = NULL;
|
|        m_CurrentItem = NULL;
|
|        m_bConfirmAddEntry  = true;
----


Так блоки лучше воспринимаются.
Конечно надо добавить подсветку и возможность работы с выделенным текстом.

И после этого может получиться весьма достойный продукт. Неплохо бы, конечно, добавить интеграцию с внешними компилерами, чтобы компилить прямо не отходя от кассы можно было бы, но это уже вторым планом.

Автор: unit0 4.8.2004, 14:50
Хочу сделать поддержку #region для С#, но вот любопытный вопрос:
такая языковая конструкция допустима в С# и если да, то как она изображается в VS и как сворачивается?

#region something

void fn1(void)
{



#endregion

};

У кого есть VS гляньте, пожалуйста.

Автор: Дрон 4.8.2004, 15:12
unit0
Проверил.
Сворачивает функцию fn1 целиком, как если бы #endregion было после закрывающей фигурной скобки.

Автор: unit0 4.8.2004, 16:14
А если изменить код так:


#region something1

void fn1(void)
{

#region something2

}

//otheroperators1

#endregion

//otheroperators2

#endregion

где будут границы регионов?

Автор: Дрон 4.8.2004, 18:35
something2 свернёт часть fn1 (всё, что после #region) и otheroperators1.
something1 свернёт естественно всё до второго #endregion.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)