Здравствуйте, catbert, Вы писали:
C>Не знаю, что такое "водр" , но с правой стороны присваиваний автокомплит через Ctrl+Space работает. С левой стороны — нет, и я не представляю, как его добавить.
Опять же погляди макру ?. я там эте проблему тоже решил.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Допилил макрос и компилятор. Теперь для макроса with доступен интлеллисенс (хинты, переход к определению, подсветка использования, автодополнение при вводе).
Допиливание в компиляторе свелось к тому, чтобы код типа:
Можно перенести это дело в стандартную библиотеку макросов.
Но есть одна недоработка. Эту штуку нужно поддерживать в макросе поддрежки linq. Там инициализация объекта с with должна переписываться во что-то вроде:
Предлагаю внести данный макрос в состав стандартной библиотеки. А то он слишком мал чтобы ради него цеплять отдельную сборку, но штука может оказаться полезной для многих.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
) хотел инициализаторы коллекций, так что я решил поделиться, и обновил реализацию with-макроса в сниппетах. Поддерживаются новые фичи.
Макрос переехал в стандартную библиотеку в пространство имен Nemerle.Extensions.
К сожалению, использовать оригинальное имя "with" в качестве имени оператора не вышло: виртуальный оператор с таким именем, используемый для поддержки PM-а, имеет неподходящие приоритеты. Использована синтетическая штуковина: <-. Пример тут. Как и макра анонимного типа, инициализатор пока не отражен в официальной документации.
) хотел инициализаторы коллекций, так что я решил поделиться, и обновил реализацию with-макроса в сниппетах. Поддерживаются новые фичи.
H>Макрос переехал в стандартную библиотеку в пространство имен Nemerle.Extensions. H>К сожалению, использовать оригинальное имя "with" в качестве имени оператора не вышло: виртуальный оператор с таким именем, используемый для поддержки PM-а, имеет неподходящие приоритеты. Использована синтетическая штуковина: <-.
Жаль. Впрочем, <- сойдет
H>Как и макра анонимного типа, инициализатор пока не отражен в официальной документации.
Как лучше всего это исправить? Мне кажется, стоит добавить доки в CSharpDiff и в раздел Macros.
Здравствуйте, catbert, Вы писали:
C>Как лучше всего это исправить? Мне кажется, стоит добавить доки в CSharpDiff и в раздел Macros.
Можно в принципе, но мне кажется, что эта страница слишком перегружена. Наши реализации анонимных типов и инициализаторов существенно функциональнее и вполне тянут на выделенные страницы. А в CSharpDiff можно небольшие примеры поместить с отсылкой на полные статьи.
Здравствуйте, hardcase, Вы писали:
H>К сожалению, использовать оригинальное имя "with" в качестве имени оператора не вышло: виртуальный оператор с таким именем, используемый для поддержки PM-а, имеет неподходящие приоритеты. Использована синтетическая штуковина: <-.
Вот тебе, бабушка, и Юрьев… то есть оператор стрелка
Help will always be given at Hogwarts to those who ask for it.
Здравствуйте, hardcase, Вы писали:
_FR>>Вот тебе, бабушка, и Юрьев… то есть оператор стрелка
H>Подругому не получилось.
Ага. Стрелка в обратную сторону выглядит страшно не удобно. Но чего-то на замену тоже не придумывается. Жаль, что нельзя сделать как в шарпе
H>Вообще у нас уже есть оператор стрелка (в другую сторону), он используется для декларации функционального типа:
H>int * string -> bool
Такие стрелки как-то мозг не ломают (текст-то набирается справа на лево).
Help will always be given at Hogwarts to those who ask for it.
Здравствуйте, _FRED_, Вы писали:
_FR>Ага. Стрелка в обратную сторону выглядит страшно не удобно. Но чего-то на замену тоже не придумывается. Жаль, что нельзя сделать как в шарпе
По-моему, как в шарпе сделать можно. Для этого придется склеить макросы анонимных типов и инициализатора.
Здравствуйте, _FRED_, Вы писали:
_FR>Ага. Стрелка в обратную сторону выглядит страшно не удобно. Но чего-то на замену тоже не придумывается. Жаль, что нельзя сделать как в шарпе
Чтобы сделать как в шарпе надо курочить компилятор. Макросы Н1 на это не способны. Думаю, что в Н2 макрам это будет под силу.
H>>Вообще у нас уже есть оператор стрелка (в другую сторону), он используется для декларации функционального типа: _FR>
H>>int * string -> bool
_FR>
_FR>Такие стрелки как-то мозг не ломают (текст-то набирается справа на лево).
В F# <- используется вместо оператора присвоения.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
_FR>>Ага. Стрелка в обратную сторону выглядит страшно не удобно. Но чего-то на замену тоже не придумывается. Жаль, что нельзя сделать как в шарпе VD>Чтобы сделать как в шарпе надо курочить компилятор. Макросы Н1 на это не способны. Думаю, что в Н2 макрам это будет под силу.
H>>>Вообще у нас уже есть оператор стрелка (в другую сторону), он используется для декларации функционального типа:
H>>>int * string -> bool
_FR>>Такие стрелки как-то мозг не ломают (текст-то набирается справа на лево). VD>В F# <- используется вместо оператора присвоения.
Ага, что очень мешает даже при чтении книжек Но дело конечно же в привычке
Help will always be given at Hogwarts to those who ask for it.
Re[7]: [Snippets] Обновленный макрос with
От:
Аноним
Дата:
17.03.11 06:42
Оценка:
Здравствуйте, _FRED_, Вы писали:
_FR>Здравствуйте, VladD2, Вы писали:
_FR>>>Ага. Стрелка в обратную сторону выглядит страшно не удобно. Но чего-то на замену тоже не придумывается. Жаль, что нельзя сделать как в шарпе VD>>Чтобы сделать как в шарпе надо курочить компилятор. Макросы Н1 на это не способны. Думаю, что в Н2 макрам это будет под силу.
_FR>
H>>>>Вообще у нас уже есть оператор стрелка (в другую сторону), он используется для декларации функционального типа: _FR>
H>>>>int * string -> bool
_FR>
_FR>>>Такие стрелки как-то мозг не ломают (текст-то набирается справа на лево). VD>>В F# <- используется вместо оператора присвоения.
_FR>Ага, что очень мешает даже при чтении книжек Но дело конечно же в привычке
) хотел инициализаторы коллекций, так что я решил поделиться, и обновил реализацию with-макроса в сниппетах. Поддерживаются новые фичи.
H>Макрос переехал в стандартную библиотеку в пространство имен Nemerle.Extensions. H>К сожалению, использовать оригинальное имя "with" в качестве имени оператора не вышло: виртуальный оператор с таким именем, используемый для поддержки PM-а, имеет неподходящие приоритеты. Использована синтетическая штуковина: <-. Пример тут. Как и макра анонимного типа, инициализатор пока не отражен в официальной документации.
new в PM вроде не используется.
Может все же можно его использовать ?