Пропорциональный шрифт IDE - PullRequest
12 голосов
/ 18 августа 2008

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

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

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

Ответы [ 13 ]

0 голосов
/ 03 сентября 2014

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

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

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

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

"Но вы все еще не видите тип выборов. Результаты!" - это действительно имеет значение? Если вы хотите изменить тип возвращаемого значения 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; // включая первую
  • int freeDaysPerWeek = 2;
  • int workingHoursPerWeek = 38;

Если вам нужен комментарий к КАЖДОЙ ЛИНИИ, вы делаете что-то не так. «Но вам все равно нужно выровнять ЦЕННОСТИ», не так ли? что 38 имеет отношение к 2?

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

  • var regionWithIncrease =
    • из результата в GetRegionalElectionResults ()
    • где result.TotalCount> result> PreviousTotalCount &&
      • result.PreviousTotalCount> 0 // просто новые регионы
    • выберите результат. Регион;
  • foreach (область var в регионах с увеличением)
  • {
    • Write (регион);
  • }

Вы никогда не должны использовать построчные комментарии, и вам редко нужно вертикально выравнивать объекты. Редко, никогда. Так что я понимаю, если некоторые из вас, ребята, предпочитают моноширинный шрифт. Я предпочитаю читаемость шрифта Noto Sans или Source Sans Pro. Эти шрифты доступны бесплатно в Google и напоминают Calibri, но предназначены для программирования и поэтому имеют все необходимые характеристики:

  • Большой:; , , чтобы вы могли четко увидеть разницу
  • Ясно отчетливый 0Oo и отчетливый Il |
0 голосов
/ 19 июня 2010

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

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

есть:

iiii_space_Foo

xxxx_space_Foo

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

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

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

0 голосов
/ 20 октября 2008

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

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

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

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

шрифтом с одним интервалом = и ; все выстраиваются в ряд.

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

ПРИМЕЧАНИЕ: Добавлены дополнительные пробелы, чтобы показать, как = и ; больше не выстраиваются в линию :

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

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

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

...