Интеграция с IDE
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.03.06 10:44
Оценка: 34 (2)
Здравствуйте, VladD2, Вы писали:

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

Хотя имеется расширение для VS 2005, но он явно находится в очень зачаточном состоянии.

Между тем Oyster создал набор визардов
Автор: Oyster
Дата: 06.03.06
позволяющих получить минимальную поддержку VS 2005 без сложной установки расширения к студии.

От себя добавлю, что чтобы получить более менее приличную подсветку синтаксиса расширение ".n" лучше ассоциировать с С++. После этого можно создать файл "usertype.dat" в дирректории VS\VS2005\Common7\IDE\. В этот файл нужно поместить список ключевых слов разделенных концами строк:
_
abstract
and
array
as
base
catch
class
def
delegate
do
else
enum
event
extern
false
finally
for
foreach
fun
if
implements
in
interface
internal
lock
macro
match
module
mutable
namespace
new
null
out
override
params
private
protected
public
ref
sealed
static
struct
syntax
this
throw
true
try
type
typeof
unless
using
variant
virtual
void
when
where
while
assert
ignore

После перезапуска IDE будет доступна подсветка синтаксиса Nemerlr. Правда, к сожалению, она же будет доступна и в С++.

Шалоны описанные Oyster-ом лучше поместить в каталог:
%USERPROFILE%\My Documents\Visual Studio 2005\Templates\ProjectTemplates\Nemerle\

Каталог "Nemerle" при этом прийдется создать вручную.

При этом визарды появятся в ветке "Visual C#\Nemerle".

В общем-то можно сделать так чтобы в одном проекте можно было держать cs-файлы и n-файлы. При этом первые будут при компиляции конвертироваться в n-файлы с помощью утилиты cs2n.exe. Незнаю насколько это нужно, но в принципе это позволило бы, например, ползоваться некоторыми дизайнерами вроде дизайнера форм.

К сожалению cs2n.exe пользуется довольно кривым парсером C#. Так что не все файлы можно преобрзовать в Немерловские.

Если эта фича действительно нужна, могу попробовать на досуге смастерить подправленный файл проекта.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Изучаем макросы Nemerle
От: mrozov  
Дата: 10.03.06 11:41
Оценка:
Здравствуйте, VladD2, Вы писали:

Влад, а можно надеяться, что обнаружив в Nemerle концептуальные грабли, ты возвестишь об этом общественность не менее громко и эмоционально, чем о многочисленных его достоинствах?

Т.е. споткнувшись обо что-то, отметишь это как недостаток, а не будешь заниматься медитацией, как отдельные комрады?
Re[2]: Изучаем макросы Nemerle
От: Oyster Украина https://github.com/devoyster
Дата: 10.03.06 11:52
Оценка:
Здравствуйте, mrozov, Вы писали:

M>Влад, а можно надеяться, что обнаружив в Nemerle концептуальные грабли, ты возвестишь об этом общественность не менее громко и эмоционально, чем о многочисленных его достоинствах?


M>Т.е. споткнувшись обо что-то, отметишь это как недостаток, а не будешь заниматься медитацией, как отдельные комрады?


Думаю, это относится ко всем, не только к Владу. Уже спотыкались и уже сообщали — см. Снова о Nemerle или профанация не пройдет :)
Автор: IT
Дата: 15.02.06
(например, про возможность указания неймспейса или задания алиаса для first token, про { .. $list } в quoted type declaration и др.).

Поэтому не понимаю твоих опасений
Re: Интеграция с IDE
От: mogadanez Чехия  
Дата: 10.03.06 14:21
Оценка:
Здравствуйте, VladD2, Вы писали:

<skip>

что то падает оно при компиляции

в OutPut пишет

------ Rebuild All started: Project: ConsoleApplication2, Configuration: Debug Any CPU ------
C:\Program Files\Nemerle\ncc.exe /no-color /define:DEBUG;TRACE /debug+ /out:obj\Debug\ConsoleApplication2.exe /target:exe Main.n

Unhandled Exception: OutOfMemoryException.
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Re[2]: Интеграция с IDE
От: Oyster Украина https://github.com/devoyster
Дата: 10.03.06 15:14
Оценка:
Здравствуйте, mogadanez, Вы писали:

M>Unhandled Exception: OutOfMemoryException.
M>========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========


Ты не первый: http://nemerle.org/bugs/view.php?id=613. Но почему это происходит, я понятия не имею — у меня всё ОК.
Re[2]: Интеграция с IDE
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.03.06 16:33
Оценка:
Здравствуйте, mogadanez, Вы писали:

M>что то падает оно при компиляции


Скорее всего у тебя компилятор более новой версии чем библиотеки. Ты или все бери из SVN-а и компилируй сам, или пользуйся бинарниками из инсталлятора.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Изучаем макросы Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.03.06 16:33
Оценка: 1 (1)
Здравствуйте, mrozov, Вы писали:

M>Влад, а можно надеяться, что обнаружив в Nemerle концептуальные грабли, ты возвестишь об этом общественность не менее громко и эмоционально, чем о многочисленных его достоинствах?


Я чертовски не люблю проблем. И о том, что обнаруживаю сразу же сообщаю их разработчикам. Пока что они идут на уступки и устраняют проблемы:
http://nemerle.org/forum/viewforum.php?f=2&amp;sid=6254c08ffd33039c6230ad0a1cb72e40

M>Т.е. споткнувшись обо что-то, отметишь это как недостаток, а не будешь заниматься медитацией, как отдельные комрады?


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

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

Но для этого нужно получить чуть больше опыта и убедиться, что недостаток концептуален, а не является обнаруженым багом компилятора.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Изучаем макросы Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.03.06 16:33
Оценка:
Здравствуйте, Oyster, Вы писали:

O>Думаю, это относится ко всем, не только к Владу. Уже спотыкались и уже сообщали — см. Снова о Nemerle или профанация не пройдет :)
Автор: IT
Дата: 15.02.06
(например, про возможность указания неймспейса или задания алиаса для first token, про { .. $list } в quoted type declaration и др.).


Все это недоработки в компиляторе. Мня больше смущают не всегда внятные сообщения компилятора, отсуствие комплита и т.п.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Интеграция с IDE
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.03.06 17:39
Оценка:
Здравствуйте, mogadanez, Вы писали:

M>
M>------ Rebuild All started: Project: ConsoleApplication2, Configuration: Debug Any CPU ------
M>C:\Program Files\Nemerle\ncc.exe /no-color /define:DEBUG;TRACE /debug+ /out:obj\Debug\ConsoleApplication2.exe /target:exe Main.n

M>Unhandled Exception: OutOfMemoryException.
M>========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
M>


Опиши, плиз, конфигурацию (процессор... ОС...).
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Интеграция с IDE
От: mogadanez Чехия  
Дата: 10.03.06 20:12
Оценка:
Здравствуйте, VladD2, Вы писали:

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


M>>
M>>------ Rebuild All started: Project: ConsoleApplication2, Configuration: Debug Any CPU ------
M>>C:\Program Files\Nemerle\ncc.exe /no-color /define:DEBUG;TRACE /debug+ /out:obj\Debug\ConsoleApplication2.exe /target:exe Main.n

M>>Unhandled Exception: OutOfMemoryException.
M>>========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
M>>


VD>Опиши, плиз, конфигурацию (процессор... ОС...).


Проблема была на работе — Dell P4 2800, wk2 Server — стоит две студии. Nemerle просто скачал и поставил, откуда другие библиотеки непонятно.

Пришел домой, все запработало с первого раза. машинка старенькая celeron1800 — w2k3 — студия только 2005
Re: Интеграция с IDE
От: mogadanez Чехия  
Дата: 10.03.06 20:36
Оценка:
Здравствуйте, VladD2, Вы писали:

<skip>

я правильно понимаю что макросы нужно всегда выносить в проект типа MacroLibrary?

Если макрос поместить в проект ConsoleApp то дает ошибку
Error 1 unbound name `TestMacro2'
Re: Интеграция с IDE
От: mogadanez Чехия  
Дата: 10.03.06 22:08
Оценка:
Здравствуйте, VladD2, Вы писали:

<skip>

еще момент. при компиляции в студии не видно в Output окошке сообщений типа Compile-time.
myName = "Vlad"
Compile-time. myName = a


я нашел только один способ их там увидеть
Options->Projects and Solutions -> Build and Run-> MSBuild....verbosity
установить не менее Detailed. но тогда еще куча ненужной ботвы выводится.

может есть другие ваианты?
Re[4]: Интеграция с IDE
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.03.06 22:28
Оценка:
Здравствуйте, mogadanez, Вы писали:

M>Проблема была на работе — Dell P4 2800, wk2 Server — стоит две студии. Nemerle просто скачал и поставил, откуда другие библиотеки непонятно.


В том баг-репорте тоже wk2 фигурировала. Надо бы им об этом сообщить. А еще ничего особенного на работчей машине не было?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Интеграция с IDE
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.03.06 22:54
Оценка:
Здравствуйте, mogadanez, Вы писали:

M>я правильно понимаю что макросы нужно всегда выносить в проект типа MacroLibrary?


Да. Макросы должны быть оформлены в виде библиотеки и подключаться к основному проекту как обычная библиотека.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Интеграция с IDE
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.03.06 22:54
Оценка:
Здравствуйте, mogadanez, Вы писали:

M>я нашел только один способ их там увидеть

M>Options->Projects and Solutions -> Build and Run-> MSBuild....verbosity
M>установить не менее Detailed. но тогда еще куча ненужной ботвы выводится.

M>может есть другие ваианты?


С этим я пока не разбирался. Но думаю, что только если подправить код MSBuildTask.n увеличив приоритет вывода.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Интеграция с IDE
От: mogadanez Чехия  
Дата: 11.03.06 05:28
Оценка:
Здравствуйте, VladD2, Вы писали:

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


M>>Проблема была на работе — Dell P4 2800, wk2 Server — стоит две студии. Nemerle просто скачал и поставил, откуда другие библиотеки непонятно.


VD>В том баг-репорте тоже wk2 фигурировала. Надо бы им об этом сообщить. А еще ничего особенного на работчей машине не было?


да там дофига всякого хлама стоит.
Re[3]: Интеграция с IDE
От: VladGalkin Украина  
Дата: 11.03.06 07:54
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Да. Макросы должны быть оформлены в виде библиотеки и подключаться к основному проекту как обычная библиотека.


От себя добавлю, что это необходимо потому, что макросы в Nemerle нельзя компилировать и использовать в одной компиляции, т.к. это связано с рядом проблем возникающих при компиляции транзитивных замыканий типов, испоьзуемых макросом. Но Nemerl'овцы пишут, что изучают подход компиляции и использования, одновременно, в одной компиляции.
... << RSDN@Home 1.1.4 stable rev. 510>>
ДЭ!
Re[4]: Интеграция с IDE
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.03.06 22:40
Оценка:
Здравствуйте, VladGalkin, Вы писали:

VG>От себя добавлю, что это необходимо потому, что макросы в Nemerle нельзя компилировать и использовать в одной компиляции, т.к. это связано с рядом проблем возникающих при компиляции транзитивных замыканий типов, испоьзуемых макросом.


В языках вроде Схемы эти проблемы решены. Только вот только крышу рвать начинает.

VG>Но Nemerl'овцы пишут, что изучают подход компиляции и использования, одновременно, в одной компиляции.


Мне кажется это лишнее. Лучше бы развили идею рантайм-кодогенерации.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Интеграция с IDE
От: Аноним  
Дата: 17.03.06 08:51
Оценка:
Здравствуйте, VladD2, Вы писали:

M>>Unhandled Exception: OutOfMemoryException.


VD>Опиши, плиз, конфигурацию (процессор... ОС...).


А для Немерла нет чего-нибудь отладочного, типа Jedi CodeLib или Эврики для Delphi?

Чтобы при исключении раскручивал стек и версии подключенных библиотек выводил ?
Re[4]: Интеграция с IDE
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.03.06 19:38
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>А для Немерла нет чего-нибудь отладочного, типа Jedi CodeLib или Эврики для Delphi?


А>Чтобы при исключении раскручивал стек и версии подключенных библиотек выводил ?


Это и так делается. Приложение то менеджед.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.