Сведения о вопросе

GANGST1ER

10:47, 20th August, 2020

Теги

ide   fonts   tabs   text-editor    

Пропорциональный шрифт IDE

Просмотров: 462   Ответов: 13

Я бы очень хотел видеть пропорциональный шрифт IDE, даже если мне придется построить его самостоятельно (возможно, как расширение для Visual Studio). То, что я в основном имею в виду, - это редактирование кода в стиле MS Word, которое похоже на типографский стиль в книге языка программирования C++.

Я хочу установить табуляторы для моих отступов и выстроить подписи функций и строки операторов присваивания, которые могут быть указаны в точках вместо фиксированных позиций символов. Я также хотел бы жирным шрифтом и курсивом. Различные размеры шрифтов и даже таблицы стилей было бы здорово.

Кто-нибудь видел что-нибудь подобное там или знает лучший способ начать строить его?



  Сведения об ответе

baggs

10:08, 4th August, 2020

Я все еще хотел бы увидеть популярный редактор или IDE, реализующий эластичные вкладки.


  Сведения об ответе

lesha

15:56, 29th August, 2020

Мышление со стилем предполагает использование вашего любимого программного обеспечения для обработки текста, такого как Word или Writer. Создайте свой программный код в rich XML и извлеките соответствующие компилятору разделы с помощью XSLT. Программное обеспечение "Office" обеспечит все расширенные функции обработки текста и форматирования.


  Сведения об ответе

davran

15:46, 11th August, 2020

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

Основное преимущество традиционного требования к шрифту 'non-proportional' в редакторах кода состоит в том, чтобы облегчить бремя выполнения форматирования кода.

Но со всем интерактивным автоматическим форматированием, которое происходит в современных IDE, вполне возможно, что пропорциональный шрифт может улучшить читаемость кода (а не затруднить его, как я уверен, ожидали бы многие пуристы).

Персонаж по имени Роуди Грин (известный своими статьями "Как написать недостижимый код") написал о теоретическом editor/language,, основанном на Java, и назвал его Бали . Он не включал в себя в точности непропорциональные шрифты, но он включал идею наличия неравномерных размеров шрифта.

Кроме того, этот короткий пост Джоэла Сполски постит к решению, эластичным табуляторам (как упоминалось другим комментатором), которые помогут с поддержкой непропорциональных (и переменных размеров) шрифтов.


  Сведения об ответе

LAST

07:25, 2nd August, 2020

@Thomas Оуэнс

Я не считаю, что код, отформатированный таким образом, легче читать.

Это нормально, это просто личное предпочтение, и мы можем не согласиться. Форматируйте его так, как вы считаете нужным, и я буду уважать его. Я часто спрашиваю себя: "как я должен форматировать ту или иную вещь?- Мой ответ всегда заключается в том, чтобы отформатировать его для улучшения читаемости, что, я признаю, может быть субъективным.

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

Но рассмотрим этот пример с оригинального плаката. Его легче обнаружить комментарии во втором, на мой взгляд.

for (size-type i = 0; i<v.size(); i++) { // rehash:
    size-type ii = has(v[i].key)%b.size9); // hash
    v[i].next = b[ii]; // link
    b[ii] = &v[i];
}

for (size-type i = 0; i<v.size(); i++) {     // rehash:
    size-type ii = has(v[i].key)%b.size9);   // hash
    v[i].next = b[ii];                       // link
    b[ii] = &v[i];
}


  Сведения об ответе

SSESION

07:52, 17th August, 2020

@Thomas Оуэнс

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

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


  Сведения об ответе

appple

21:06, 1st October, 2020

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

пропорциональный шрифт IDE

В Eclipse вы можете выбрать любой шрифт в вашей системе.

установите табуляторы для моих отступов

В Eclipse вы можете настроить автоматическое отступление, в том числе установить его на "tabs only".

выстраивание сигнатур функций и строк инструкций присваивания

В Eclipse это делает автоматический отступ.

которые могут быть указаны в точках вместо фиксированных позиций символов.

К сожалению, я не думаю, что Eclipse может помочь вам в этом. Но это открытый исходный код. ;-)

жирный шрифт и курсив

Eclipse имеет это.

Различные размеры шрифтов и даже таблицы стилей было бы здорово

Я думаю, что Eclipse использует только один шрифт и размер шрифта для каждого типа файлов (например, исходный файл Java), но вы можете иметь разные "style sheets" для разных типов файлов.


  Сведения об ответе

DO__IT

20:05, 4th August, 2020

Когда я в последний раз смотрел на Eclipse (некоторое время назад!) это позволило вам выбрать любой установленный шрифт для работы. Не совсем уверен, поддерживает ли он идею отступа с помощью табуляторов.

Это выглядело круто, но код определенно было труднее прочитать...


  Сведения об ответе

appple

06:16, 16th August, 2020

Соэрен: это довольно аккуратно, IMO. Но действительно ли люди выстраивают комментарии таким образом? Для моих комментариев в конце строки Я всегда использую один пробел, затем / / или / * или эквивалент, в зависимости от языка, который я использую. Я никогда не пытаюсь выстраивать декларации, комментарии или что-то еще, и единственное место, которое я когда-либо видел, - это учебники.


  Сведения об ответе

PIRLO

09:08, 19th August, 2020

@Brian Энсинк: я не нахожу, что код, отформатированный таким образом, легче читать.

int var1 = 1 //Comment
int longerVar = 2 //Comment
int anotherVar = 4 //Command

против

int var2       = 1 //Comment
int longerVar  = 2 //Comment
int anotherVar = 4 //Comment

Лично я считаю, что первые строки читать легче, чем вторые.


  Сведения об ответе

SSESION

15:57, 15th August, 2020

Отступная часть вашего вопроса выполняется сегодня в реальном продукте, хотя, возможно, даже на более высоком уровне автоматизации , чем вы предполагали, продукт, о котором я упоминаю, является XSLT IDE, но те же принципы форматирования будут работать с большинством (но не со всеми) обычных синтаксисов кода.

Это действительно должно быть видно в видео , чтобы понять смысл всего этого (извините за музыкальный бэк-трек). Существует также легкий спин-офф редактора XML, XMLQuire, который служит демонстратором технологий.

На скриншоте ниже показан XML форматированный с довольно сложными правилами форматирования в этом XSLT IDE, где все отступы выполняются в стиле текстового процессора, используя левое поле-не пробел или символы табуляции.

enter image description here

Чтобы подчеркнуть эту концепцию форматирования, все символы были выделены, чтобы показать, где левое поле расширяется, чтобы сохранить отступ. Я использую термин виртуальное форматирование для описания этого - это не похоже на эластичные табуляции, потому что там просто нет вкладок, а только информация о полях, которая является частью форматирования 'paragraph' (здесь используются коды RTF). Парсер переформатируется непрерывно, в том же проходе, что и синтаксическая раскраска.

Пропорциональный шрифт здесь не использовался, но это могло быть довольно легко - потому что отступ установлен в TWIPS. Опыт редактирования весьма убедителен, потому что при рефакторинге кода (в данном случае XML), возможно, путем перетаскивания или увеличения длины значения атрибута, отступ просто перетекает сам по себе, чтобы соответствовать-там нет клавиши tab или кнопки 'reformat' для нажатия.

Итак, отступ есть, но работа с шрифтом-более сложная проблема. Я экспериментировал с этим, но обнаружил, что если шрифты повторно выбираются при вводе, горизонтальное смещение кода слишком отвлекает-вероятно, потребуется инициированная пользователем команда 'format fonts'. В продукте также есть встроенная технология чернил/рукописного ввода для аннотирования кода, но я еще не использовал ее в живом выпуске.


  Сведения об ответе

lool

01:01, 27th August, 2020

Люди все жалуются на то, что комментарии не выстраиваются в очередь.

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

т.е.:

iiii_space_Foo

xxxx_space_Foo

будет выстраиваться в линию "Foo", причем пространство после "i" будет намного шире, чем после "x".

Так что назовем это упругими пространствами. а не табуляторы.

Если вы умный редактор, относитесь к комментариям особенно, но это всего лишь подливка


  Сведения об ответе

fo_I_K

15:47, 8th August, 2020

Позвольте мне вспомнить аргументы об использовании ключевого слова 'var' в C#. люди ненавидели его и думали, что это сделает код менее ясным. Например, вы не могли бы знать тип в чем-то вроде:

var x = GetResults("Main");
foreach(var y in x)
{
   WriteResult(x);
}

Их аргумент состоял в том, что вы не могли видеть, был ли x массивом, списком или любым другим IEnumerable. Или что это был за тип Y. На мой взгляд, нечеткость возникла не из-за использования var, а из-за выбора неясных имен переменных. Почему бы просто не набрать:

var electionResults = GetRegionalElactionResults("Main");
foreach(var result in electionResults)
{
   Write(result); // you can see what you're writing!!
}

"But you still cannot see the type of electionResults!"-это действительно имеет значение? Если вы хотите изменить тип возвращаемого значения GetRegionalElectionResults, вы можете это сделать. Подойдет любой IEnumerable.

Перенесемся в настоящее время. Люди хотят выровнять комментарии по аналогичному коду:

int var2       =  1; //The number of days since startup, including the first
int longerVar  =  2; //The number of free days per week
int anotherVar = 38; //The number of working hours per week

Так что без комментария все непонятно. И если вы не выровняете значения, вы не можете отделить их от переменных. А ты знаешь? Как насчет этого (игнорируйте пули, пожалуйста)

  • int daysSinceStartup = 1; / / включая первый
  • инт freeDaysPerWeek = 2;
  • инт workingHoursPerWeek = 38;

Если вам нужен комментарий к каждой строке, вы делаете что-то неправильно. "But you still need to align the VALUES"-а ты? какое отношение 38 имеет к 2?

В C# большинство блоков кода можно легко выровнять, используя только вкладки (или, как правило, кратные четырем пробелам):

  • regionsWithIncrease ВАР =
    • из результата в GetRegionalElectionResults()
    • где result.TotalCount > результат > PreviousTotalCount &&
      • result.PreviousTotalCount > 0 / / только новые регионы
    • выберите result.Region;
  • foreach (ВАР в regionsWithIncrease) {
    • Написать(регион); }
  • Вы никогда не должны использовать комментарии line-to-line, и вам редко нужно выравнивать вещи по вертикали. Редко, но не всегда. Так что я понимаю, если некоторые из вас, ребята, предпочитают моноширинный шрифт. Я предпочитаю читаемость шрифта Noto Sans или Source Sans Pro. Эти шрифты доступны свободно от Google, и напоминают Calibri, но предназначены для программирования и, таким образом, имеют все необходимые характеристики:

    • Большой : ; . , так что вы можете четко видеть разницу
    • Ясно различимый 0Oo и отчетливый Il|


      Сведения об ответе

    SSESION

    13:01, 5th August, 2020

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

    Вертикальное выравнивание делает возможным манипулировать прямоугольными блоками кода, которые охватывают несколько строк, позволяя легко выполнять операции с блоками, такие как вырезание, копирование, вставка, удаление и отступ, неиндентирование и т. д.

    В качестве примера рассмотрим этот фрагмент кода:

    a1 = a111;
    B2 = aaaa;
    c3 = AAAA;
    w4 = wwWW;
    W4 = WWWW;
    

    В mono-разнесенном шрифте = и ; все выстраиваются в линию.

    Теперь если этот текст помещается в Word и отображается пропорциональным шрифтом текст эффективно превращается в это:

    NOTE: добавлено дополнительное пустое пространство, чтобы показать, как = и ; больше не выстраиваются в линию:

    a1 = a1 1 1;
    B2  = aaaa;
    c3 = A A A A;
    w4 = w w W  W;
    W4  = W W W  W;
    

    С исчезновением вертикального выравнивания эти красивые блоки кода фактически исчезают.

    Также потому, что курсор больше не гарантированно перемещается вертикально (т. е. номер столбца не всегда постоянен от одной строки к другой) это затрудняет написание макрос-скриптов, предназначенных для манипулирования похожими строками.


    Ответить на вопрос

    Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться