Re[3]: [Snippets] Обновленный макрос with
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.12.10 14:13
Оценка:
Здравствуйте, catbert, Вы писали:

C>Не знаю, что такое "водр" , но с правой стороны присваиваний автокомплит через Ctrl+Space работает. С левой стороны — нет, и я не представляю, как его добавить.


Опять же погляди макру ?. я там эте проблему тоже решил.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: [Snippets] Обновленный макрос with
От: Ziaw Россия  
Дата: 15.12.10 09:23
Оценка: +1
Здравствуйте, catbert, Вы писали:

C>Народ (http://www.rsdn.ru/forum/nemerle/4067914.1.aspx
Автор: hardcase
Дата: 07.12.10
) хотел инициализаторы коллекций, так что я решил поделиться, и обновил реализацию with-макроса в сниппетах. Поддерживаются новые фичи.


Удобно. Имхо, это должно войти в стандартную библиотеку макросов до релиза.
Re: [Snippets] Обновленный макрос with
От: VladD2 Российская Империя www.nemerle.org
Дата: 16.12.10 17:28
Оценка: 21 (2)
Здравствуйте, catbert, Вы писали:

Допилил макрос и компилятор. Теперь для макроса with доступен интлеллисенс (хинты, переход к определению, подсветка использования, автодополнение при вводе).

Допиливание в компиляторе свелось к тому, чтобы код типа:
| <[ $(prop : name) =    $val ]> => <[ $name.$(prop : name) =  $val ]>

умно копировал местоположение имени результирующий код.

Погляди на будущее что надо делать, чтобы получить автодополнение. Там все просто. Нужно просто преобразовать PExpr.ToComplete() в Splicable.HalfId().
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: [Snippets] Обновленный макрос with
От: VladD2 Российская Империя www.nemerle.org
Дата: 16.12.10 18:23
Оценка:
Здравствуйте, catbert, Вы писали:

Можно перенести это дело в стандартную библиотеку макросов.

Но есть одна недоработка. Эту штуку нужно поддерживать в макросе поддрежки linq. Там инициализация объекта с with должна переписываться во что-то вроде:
MemberInit(newExpr, array[Expression.Bind(..., initExpr)])
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: [Snippets] Обновленный макрос with
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.02.11 02:00
Оценка: 10 (4) +3
Здравствуйте, catbert, Вы писали:

Предлагаю внести данный макрос в состав стандартной библиотеки. А то он слишком мал чтобы ради него цеплять отдельную сборку, но штука может оказаться полезной для многих.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: [Snippets] Обновленный макрос with
От: hardcase Пират http://nemerle.org
Дата: 15.03.11 22:04
Оценка: 143 (4)
Здравствуйте, catbert, Вы писали:

C>Народ (http://www.rsdn.ru/forum/nemerle/4067914.1.aspx
Автор: hardcase
Дата: 07.12.10
) хотел инициализаторы коллекций, так что я решил поделиться, и обновил реализацию with-макроса в сниппетах. Поддерживаются новые фичи.


Макрос переехал в стандартную библиотеку в пространство имен Nemerle.Extensions.
К сожалению, использовать оригинальное имя "with" в качестве имени оператора не вышло: виртуальный оператор с таким именем, используемый для поддержки PM-а, имеет неподходящие приоритеты. Использована синтетическая штуковина: <-. Пример тут. Как и макра анонимного типа, инициализатор пока не отражен в официальной документации.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[2]: [Snippets] Обновленный макрос with
От: catbert  
Дата: 15.03.11 22:24
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Здравствуйте, catbert, Вы писали:


C>>Народ (http://www.rsdn.ru/forum/nemerle/4067914.1.aspx
Автор: hardcase
Дата: 07.12.10
) хотел инициализаторы коллекций, так что я решил поделиться, и обновил реализацию with-макроса в сниппетах. Поддерживаются новые фичи.


H>Макрос переехал в стандартную библиотеку в пространство имен Nemerle.Extensions.

H>К сожалению, использовать оригинальное имя "with" в качестве имени оператора не вышло: виртуальный оператор с таким именем, используемый для поддержки PM-а, имеет неподходящие приоритеты. Использована синтетическая штуковина: <-.

Жаль. Впрочем, <- сойдет

H>Как и макра анонимного типа, инициализатор пока не отражен в официальной документации.


Как лучше всего это исправить? Мне кажется, стоит добавить доки в CSharpDiff и в раздел Macros.
Re[3]: [Snippets] Обновленный макрос with
От: hardcase Пират http://nemerle.org
Дата: 15.03.11 22:30
Оценка: +1
Здравствуйте, catbert, Вы писали:

C>Как лучше всего это исправить? Мне кажется, стоит добавить доки в CSharpDiff и в раздел Macros.


Можно в принципе, но мне кажется, что эта страница слишком перегружена. Наши реализации анонимных типов и инициализаторов существенно функциональнее и вполне тянут на выделенные страницы. А в CSharpDiff можно небольшие примеры поместить с отсылкой на полные статьи.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[2]: [Snippets] Обновленный макрос with
От: _FRED_ Черногория
Дата: 16.03.11 18:04
Оценка:
Здравствуйте, hardcase, Вы писали:

H>К сожалению, использовать оригинальное имя "with" в качестве имени оператора не вышло: виртуальный оператор с таким именем, используемый для поддержки PM-а, имеет неподходящие приоритеты. Использована синтетическая штуковина: <-.


Вот тебе, бабушка, и Юрьев… то есть оператор стрелка
Help will always be given at Hogwarts to those who ask for it.
Re[3]: [Snippets] Обновленный макрос with
От: hardcase Пират http://nemerle.org
Дата: 16.03.11 18:38
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Вот тебе, бабушка, и Юрьев… то есть оператор стрелка


Подругому не получилось. Вообще у нас уже есть оператор стрелка (в другую сторону), он используется для декларации функционального типа:
int * string -> bool
/* иЗвиНите зА неРовнЫй поЧерК */
Re[4]: [Snippets] Обновленный макрос with
От: _FRED_ Черногория
Дата: 16.03.11 19:03
Оценка: 5 (1)
Здравствуйте, hardcase, Вы писали:

_FR>>Вот тебе, бабушка, и Юрьев… то есть оператор стрелка


H>Подругому не получилось.


Ага. Стрелка в обратную сторону выглядит страшно не удобно. Но чего-то на замену тоже не придумывается. Жаль, что нельзя сделать как в шарпе

H>Вообще у нас уже есть оператор стрелка (в другую сторону), он используется для декларации функционального типа:

H>int * string -> bool


Такие стрелки как-то мозг не ломают (текст-то набирается справа на лево).
Help will always be given at Hogwarts to those who ask for it.
Re[5]: [Snippets] Обновленный макрос with
От: catbert  
Дата: 16.03.11 21:33
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Ага. Стрелка в обратную сторону выглядит страшно не удобно. Но чего-то на замену тоже не придумывается. Жаль, что нельзя сделать как в шарпе


По-моему, как в шарпе сделать можно. Для этого придется склеить макросы анонимных типов и инициализатора.
Re[5]: [Snippets] Обновленный макрос with
От: VladD2 Российская Империя www.nemerle.org
Дата: 16.03.11 22:42
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Ага. Стрелка в обратную сторону выглядит страшно не удобно. Но чего-то на замену тоже не придумывается. Жаль, что нельзя сделать как в шарпе


Чтобы сделать как в шарпе надо курочить компилятор. Макросы Н1 на это не способны. Думаю, что в Н2 макрам это будет под силу.

H>>Вообще у нас уже есть оператор стрелка (в другую сторону), он используется для декларации функционального типа:

_FR>
H>>int * string -> bool
_FR>


_FR>Такие стрелки как-то мозг не ломают (текст-то набирается справа на лево).


В F# <- используется вместо оператора присвоения.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: [Snippets] Обновленный макрос with
От: _FRED_ Черногория
Дата: 17.03.11 05:30
Оценка:
Здравствуйте, 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>Ага, что очень мешает даже при чтении книжек Но дело конечно же в привычке


withs не лучше будет?

а то стрелочка пугает
Re[8]: [Snippets] Обновленный макрос with
От: artelk  
Дата: 17.03.11 10:11
Оценка:
Здравствуйте, Аноним, Вы писали:

А>withs не лучше будет?


А>а то стрелочка пугает


А within?
Re[2]: [Snippets] Обновленный макрос with
От: _nn_ www.nemerleweb.com
Дата: 17.03.11 10:30
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Здравствуйте, catbert, Вы писали:


C>>Народ (http://www.rsdn.ru/forum/nemerle/4067914.1.aspx
Автор: hardcase
Дата: 07.12.10
) хотел инициализаторы коллекций, так что я решил поделиться, и обновил реализацию with-макроса в сниппетах. Поддерживаются новые фичи.


H>Макрос переехал в стандартную библиотеку в пространство имен Nemerle.Extensions.

H>К сожалению, использовать оригинальное имя "with" в качестве имени оператора не вышло: виртуальный оператор с таким именем, используемый для поддержки PM-а, имеет неподходящие приоритеты. Использована синтетическая штуковина: <-. Пример тут. Как и макра анонимного типа, инициализатор пока не отражен в официальной документации.

new в PM вроде не используется.
Может все же можно его использовать ?

def a = A() new { X = 1, Y = 2 };
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[4]: [Snippets] Обновленный макрос with
От: Rival Таиланд
Дата: 17.03.11 12:12
Оценка:
Здравствуйте, hardcase, Вы писали:

а может set?
def a = A() set { X = 1, Y = 2 };

или rec от record:
def a = A() rec { X = 1, Y = 2 };
«История жизни – это, по существу, развитие сознания, которое завуалировано морфологией.» Пьер Тейяр де Шарден
Re[9]: [Snippets] Обновленный макрос with
От: Аноним  
Дата: 17.03.11 12:29
Оценка:
Здравствуйте, artelk, Вы писали:

A>Здравствуйте, Аноним, Вы писали:


А>>withs не лучше будет?


А>>а то стрелочка пугает


A>А within?


Думаю разницы нет... можно любое
Re[5]: [Snippets] Обновленный макрос with
От: hardcase Пират http://nemerle.org
Дата: 17.03.11 12:32
Оценка:
Здравствуйте, Rival, Вы писали:

В качестве операторов оба варианта не подойдут — переменные с такими именами не редкость.
/* иЗвиНите зА неРовнЫй поЧерК */
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.