Здравствуйте, Аноним, Вы писали:
А>В частности, есть непонятки с переносом текста, нужен ли для него отдельный тэг?
Подумал по-лучше...
Пожалуй, что нужно, но не просто тег говорящий, что вот тут нужно начать новый абзац, а нечто более сложное.
Смотри... У нас могут быть простые методы вроде:
SomeMethod(arg1 : string) : int
Если такой метод изображать перенесенным:
public SomeMethod(
arg1 : string
) : int
то восприятие только ухудшится.
С другой стороны у нас могут быть вот такие методы:
public Nemerle.Compiler.Utils.Utils.MakeTextHintForTExprMethodRef(
expr : Nemerle.Compiler.Typedtree.TExpr,
obj : Nemerle.Compiler.Typedtree.TExpr,
method : Nemerle.Compiler.IMethod,
typeArgs : list[Nemerle.Compiler.TyVar],
notvirtual : bool,
) : string
их как раз очень плохо отображать в одну строку:
public Nemerle.Compiler.Utils.Utils.MakeTextHintForTExprMethodRef(expr : Nemerle.Compiler.Typedtree.TExpr, obj : Nemerle.Compiler.Typedtree.TExpr, method : Nemerle.Compiler.IMethod, typeArgs : list[Nemerle.Compiler.TyVar], notvirtual : bool) : string
Даже если сократить все тип:
public Utils.MakeTextHintForTExprMethodRef(expr : TExpr, obj : TExpr, method : IMethod, typeArgs : list[TyVar], notvirtual : bool) : string
представление получается длинноватым.
Хорошо бы реализовать следующую фичу...
В некоторых тегах (например, в теге code), некоторые символы должны интерпретироваться как "мягкие" концы строк и как символы "табличного выравнивания". В примере выше символом мягкого конца
строки должна служить запятая, а символом табличного выравнивания двоеточие.
Реализация хинта должна попытаться втиснуть содержимое такого тега в область хинта. Если это удается, то никаких дополнительных действий производить не надо. Если — нет, то нужно добавить концы строк полсе каждой запятой и по табуляции перед каждым двоеточием.
В итоге код в хинте должен выглядить следующим образом:
public Utils.MakeTextHintForTExprMethodRef(
expr : TExpr,
obj : TExpr,
method : IMethod,
typeArgs : list[TyVar],
notvirtual : bool,
) : string
естественно, что каждый тип должен быть под-хинтом, слова "public" и встроенные типы (bool и string в данном примере) подсвечены синим.