Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2009, 13:43   #1
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию Редактор кода - какой он?

Хочу редактор кода забабахать. Ну соответственно хотелось бы узнать, что нужно товарищам по несчатью от такого рода программы.
Ну базовый набор - подсветка кода, всплывающие подсказки и автозамена, поиск и пр. Это и ежу понятно.
А вот навигация по тексту, представление (не знаю, ну там блок-схемы или диаграммы) какие должны быть?
Класс языка программирования предоставляет служебную инфу - списки логических блоков, условий, циклов и функций, способен выбрать список функций, внесенных пользователем и еще кое-что. То есть, к примеру, я могу выбрать из кода любое условие и его истинную и ложную ветви, но как их представить? Ну чтобы мне не особо заморачиваться и чтобы дргуим удобно было.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 25.11.2009, 13:45   #2
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Цитата:
А вот навигация по тексту, представление (не знаю, ну там блок-схемы или диаграммы) какие должны быть?
Навигация должна быть к функции/прототипу_класса + к "якорям", произвольно расставляемым пользователем.

+ сворачивание функции/класса/произвольного_фрагмента_кода

Цитата:
Класс языка программирования предоставляет служебную инфу - списки логических блоков, условий, циклов и функций, способен выбрать список функций, внесенных пользователем и еще кое-что. То есть, к примеру, я могу выбрать из кода любое условие и его истинную и ложную ветви, но как их представить? Ну чтобы мне не особо заморачиваться и чтобы дргуим удобно было.
Не понял, что именно ты имеешь ввиду?
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 25.11.2009, 13:52   #3
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Цитата:
Сообщение от ROD Посмотреть сообщение
Не понял, что именно ты имеешь ввиду?
Что написано, то и имею. Редактор кода к моему языку программирования - см. тему Программировать на русском.
Так вот, в нем вводишь текст программы, он ее преобразует во внутренние структуры, а они как раз и есть циклы, методы, условия и пр. Не посимвольное сканирование, а оперирование функциональными частями программы. Для интерпретатора раз плюнуть.

Цитата:
Навигация должна быть к функции/прототипу_класса + к "якорям", произвольно расставляемым пользователем.
В виде чего? Я могу одним махом стереть весь блок (не важно к примеру цикл), не бегая и не выделяя курсором, а просто, к примеру, ткнуть в него правой кнопкой и выбрать удалить. Как сделать чтобы это было удобно и понятно?

Цитата:
+ сворачивание функции/класса/произвольного_фрагмента_кода
Это смотря как посмотреть, можно и так, а можно и не сворачивать, а как в проводнике ввиде древовоидной структуры - нажал на пункт, а в окне открылся код, ну к примеру того же цикла. Там будет только цикл и ничего больше. Ткнул в другое место - пожайлуста ложная ветвь условия, чуть выше истинная ветвь условия и т.д.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 25.11.2009 в 14:09.
Utkin вне форума Ответить с цитированием
Старый 25.11.2009, 14:36   #4
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Сначала определи, кого не устраивают IDE-шные редакторы.
ds.Dante вне форума Ответить с цитированием
Старый 25.11.2009, 14:38   #5
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Цитата:
Сообщение от ds.Dante Посмотреть сообщение
Сначала определи, кого не устраивают IDE-шные редакторы.
Как минимум меня. Поэтому и спросил, обязательно надо как в Визуал Студио?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 25.11.2009 в 14:42.
Utkin вне форума Ответить с цитированием
Старый 25.11.2009, 14:43   #6
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

Можно подглядеть в isagraf или еще каком средстве разработки для ПЛК реализацию языков SFC и FBD. В SFC как раз идут на верхнем уровне эдакие диаграммы, а на нижнем уровне язык по типу паскаля. Я правда старенький isagraf только видел и там всё это не очень удобно. Ну зато можно это дело живьём "пощупать" и понять что там неудобно и как лучше сделать.
Языки только это специфичные и мало общего с привычными делфями и сями имеют, но идею скомуниздить, думаю, можно
Ну а советовать как лучше я не могу, ибо это штука субъективная. Мне удобно одно, а другому - другое. Вообще я смутно представляю как можно для языка типа делфей, С++,.. сделать удобный редактор в виде схем. Блоки нарисовать конечно не проблема. Проблема, пожалуй, разбить код автоматически именно на нужные блоки. Допустим, есть код на си:
Код:
...
int i = 10;
while (i > 0)
  --i;
...
По идее, это нужно в схеме одним блоком отображать, но как это сделать - вопрос.
В общем, думать тут надо долго и упорно, а так вот сразу не скажешь как лучше. Были бы варианты, можно было бы сказать: вот этот вариант лучше другого, потому что ...
pu4koff вне форума Ответить с цитированием
Старый 25.11.2009, 14:51   #7
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
Ну а советовать как лучше я не могу, ибо это штука субъективная.
Ну так хоть вариант еще какой-нибудь.

Цитата:
Проблема, пожалуй, разбить код автоматически именно на нужные блоки. Допустим, есть код на си:
Код:
...
int i = 10;
while (i > 0)
  --i;
...
По идее, это нужно в схеме одним блоком отображать, но как это сделать - вопрос.
Вот как раз в моем случае это совсем не вопрос. Когда интерпретатор проглатывает текст из Мемо, он его распихивает именно в такие блоки. И выполняет код уже исходя из этих самых блоков.


Цитата:
В общем, думать тут надо долго и упорно, а так вот сразу не скажешь как лучше. Были бы варианты, можно было бы сказать: вот этот вариант лучше другого, потому что ...
Возможно использовать несколько вариантов, а программер сам определится че ему надо.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 25.11.2009 в 15:00.
Utkin вне форума Ответить с цитированием
Старый 25.11.2009, 15:12   #8
NSvirus
пропагандирую жизЪ
Форумчанин
 
Аватар для NSvirus
 
Регистрация: 19.03.2007
Сообщений: 950
По умолчанию

Сделай редактор для студентов, который будет добавлять комментарии к каждой строчке кода. Вот это будет чудо так чудо!
Посторонним В.
NSvirus вне форума Ответить с цитированием
Старый 25.11.2009, 15:16   #9
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Возможно использовать несколько вариантов, а порграммер сам определится че ему надо.
Ну тут тогда нужно анализировать какие задачи стоят перед программером и как их ему проще будет реализовывать.
1) Реализация алгоритма
Как мне кажется, тут удобнее оперировать как раз блоками цикл, ветвление,... т.е. сначала накидали эдакую блок-схему алгоритма, а потом уже для каждого блока можно набивать код. Блоки можно в принципе взять из ГОСТа схем алгоритмов (дополнительная фича будет для студентов, т.к. схемы в визио всяких рисовать не нужно будет). Но в идеале нужно предусмотреть сворачивание тел циклов и ветвлений, т.к. толку от километровой схемы не будет никакого всё равно, а так всё лишнее свернул и всё нужное перед глазами. Опять же нужно для блоков предусмотреть комментарии, чтобы через пол года было понятно зачем нужен цикл. Можно по хитрому их из кода брать попробовать, т.е. комментарий перед циклом - это есть комментарий соответствующего блока. Ну и соответственно наоборот: создали цикл в схеме, написали комментарий, он должен появиться и в коде.
Проблема в том, что явно потребуется так же и возможность генерации схемы по коду и эти схемы могут сильно отличаться. Одному человеку удобнее так на блоки разбить для данного алгоритма, другому - иначе, а программа будет их генерировать вообще по своему.
2) Нудное набивание кода
Тут схемы будут скорее всего только мешать. Наиболее привычный и соответственно удобный тут редактор аля блокнот как в большинстве современных IDE. Тут собственно есть опыт работы с делфями и вижуал студией и потому примерно понятно что и как лучше делать.
3) Отладка
Для этого, я так думаю, работу с контрольными точками нужно хорошенько продумать. В принципе, схемы тоже было бы неплохо прикрутить, но не алгоритмические, а эдакие схемы вызовов кода. Остановились по точке останова/поймали exception и можно глянуть откуда мы туда попали, ну и, естественно, значения переменных.
4) Сопровождение кода / рефакторинг
Тут я вообще без понятия как можно сделать, чтобы было удобно. Там и блоки перетаскивать нужно уметь и переименовывать всё подряд и т.д. и т.п.

Ну вот я бы от этих вариантов использования пожалуй и плясал.
pu4koff вне форума Ответить с цитированием
Старый 25.11.2009, 15:16   #10
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Цитата:
Сообщение от NSvirus Посмотреть сообщение
Сделай редактор для студентов, который будет добавлять комментарии к каждой строчке кода. Вот это будет чудо так чудо!
Да не вопрос, серьезно это возможно. Но только он будет давать комментарии по коду, а не по алгоритму.
Но хороша ли эта идея? Студенты и так думать не хотят, а уж в таком случае и вовсе писать разучатся.


Цитата:
1) Реализация алгоритма
Как мне кажется, тут удобнее оперировать как раз блоками цикл, ветвление,... т.е. сначала накидали эдакую блок-схему алгоритма, а потом уже для каждого блока можно набивать код. Блоки можно в принципе взять из ГОСТа схем алгоритмов (дополнительная фича будет для студентов, т.к. схемы в визио всяких рисовать не нужно будет). Но в идеале нужно предусмотреть сворачивание тел циклов и ветвлений, т.к. толку от километровой схемы не будет никакого всё равно, а так всё лишнее свернул и всё нужное перед глазами.
Я думал использовать TreeView для чего-то подобного, но он не сильно приспособлен для этого.

Цитата:
Опять же нужно для блоков предусмотреть комментарии, чтобы через пол года было понятно зачем нужен цикл. Можно по хитрому их из кода брать попробовать, т.е. комментарий перед циклом - это есть комментарий соответствующего блока. Ну и соответственно наоборот: создали цикл в схеме, написали комментарий, он должен появиться и в коде.
Для этого тоже есть поле, предпологается хранить тексты программ в двух форматах - в обычном текстовым, тогда комментарии для блоков учитываться не будут, либо в специальном формате (класс интерпретатора его тоже понимает), по сути тоже текст, но со специальной неудобной для обычного восприятия структурой, там возможно хранение таких комментариев. Это удобно - подключил интрепретатор к редактору кода, а он считывает файл и распихивает информацию в блоки программы. А затем отдает редактору то, что требуется. Ну и наоборот возможно.


Цитата:
Проблема в том, что явно потребуется так же и возможность генерации схемы по коду и эти схемы могут сильно отличаться. Одному человеку удобнее так на блоки разбить для данного алгоритма, другому - иначе, а программа будет их генерировать вообще по своему.
Вот поэтому и думу думаю. Сейчас воспринимаются просто блоки (аналоги Паскалевских begin-end), условия, циклы и функции. Блоки могут быть вложенными любое разумное количество раз. И строится схема будет по ним.

Цитата:
2) Нудное набивание кода
Тут схемы будут скорее всего только мешать. Наиболее привычный и соответственно удобный тут редактор аля блокнот как в большинстве современных IDE. Тут собственно есть опыт работы с делфями и вижуал студией и потому примерно понятно что и как лучше делать.
На самом деле от этого уже пара уходить. В общем-то тоже возможно, но естественно мне проще оперировать блоками - бац, шаблон цикла или блока и т.д. А отдельно уже заполнил блок. Между прочим очень удобно. Ведь на самом деле это и есть реализация структурированного подхода и кроме того именно такие элементу управляют логикой программы.

Цитата:
3) Отладка
Для этого, я так думаю, работу с контрольными точками нужно хорошенько продумать. В принципе, схемы тоже было бы неплохо прикрутить, но не алгоритмические, а эдакие схемы вызовов кода. Остановились по точке останова/поймали exception и можно глянуть откуда мы туда попали, ну и, естественно, значения переменных.
Я могу отобразить информацию из стека вызванных методов, по типу:
основной код -> факториал -> факториал -> факториал -> факториал -> факториал и т.д.
основной код -> ввод_числа -> проверка_диапазона -> проверка_на_нуль

Цитата:
4) Сопровождение кода / рефакторинг
Тут я вообще без понятия как можно сделать, чтобы было удобно. Там и блоки перетаскивать нужно уметь и переименовывать всё подряд и т.д. и т.п.
Мне на ум только аналогия с Проводником приходит, больше ничего . Сами операции по перетаскиванию, удалению, вставке и т.д. фактически легко реализуемы (не делал, потому что не было необходимости). Короче это возможно, вопрос, как сделать это наглядным?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 25.11.2009 в 15:31.
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в редактор кода Delphi 7 добавить новый шрифт? lexaltd Общие вопросы Delphi 13 22.06.2012 18:34
Какой редактор читает файлы формата pdf? Linked007 Помощь студентам 5 24.11.2009 17:50
Тормозит редактор кода в Delphi 2006 Terminal Общие вопросы Delphi 2 04.08.2009 00:18
Delphi. Редактор кода. BOBAH13 Общие вопросы Delphi 5 25.05.2008 00:20
Выдернуть куски кода из html-кода trafbite Помощь студентам 7 18.08.2007 13:51