102 votes

Comment créer un nouveau langage pour une utilisation dans Visual Studio

Je veux écrire un nouveau template de la langue, et je veux que Visual Studio "support". Ce que j'ai besoin de savoir, c'est:

  1. Comment puis-je analyser mon nouveau langage?
    Donné un peu de code dans mon nouveau langage, comment puis-je traduire en HTML? Droit maintenant, je suis en utilisant des expressions régulières pour analyser jeton par jeton, mais je ne pense pas que cela va à l'échelle très bien que le langage devient plus compliqué, et il n'y a pas de vérification d'erreur. J'ai entendu parler de ANTLR, mais jamais utilisé. Serait-ce le bon outil pour ce travail, ou est-il peut-être quelque chose de plus simple? Idéalement, je voudrais envoyer les erreurs de syntaxe à la fenêtre d'erreur avec autant d'informations que possible (n ° de la ligne, le type d'erreur) comme les autres langues.
  2. Comment puis-je créer un nouveau type de fichier pour Visual Studio?
  3. Comment puis-je obtenir la coloration syntaxique?
    Puis-je utiliser le même analyseur j'ai créé à l'étape 1, ou est-ce quelque chose de totalement différent?
  4. Comment puis-je obtenir Intellisense?

Je préfère écrire mes analyseur en C#.

62voto

James Kovacs Points 8757

Je voudrais prendre un coup d'oeil à une autre langue qui a déjà fait le travail sur le terrain de l'intégration avec Visual Studio. Un excellent exemple est Boo. La langue et l'intégration de Visual Studio sont open source. Ainsi, vous pouvez prendre un coup d'oeil à exactement ce qu'ils avaient à faire.

Boo-la coloration syntaxique pour VS2010 comprend certains liens recommandés sur sa page d'accueil, je vais copier pour en faciliter la consultation:

29voto

Brian Points 82719

Concernant le Visual Studio aspects, ce que vous avez besoin est une "langue de service", qui est l'entité qui gère la colorisation, intellisense, etc. pour un fichier d'extension/type. Voir

http://channel9.msdn.com/blogs/vsipmarketing/vsx212-adding-a-language-service-into-visual-studio-2010

pour une intro, ainsi que

http://code.msdn.microsoft.com/ookLanguage/

pour un exemple de code.

Concernant l'analyse, il ya beaucoup de technologies, et je ne vais pas donner un avis/conseils.

Méfiez-vous, il ya une bonne quantité de travail, mais, à mon avis, il est beaucoup plus simple dans VS2010 que dans les versions précédentes de Visual Studio pour fournir ce type d'extension.

Voir aussi

Visual Studio 2010 Extensibilité, MPF et services linguistiques

9voto

ColinCren Points 418

J’ai écrit un Service en langue VS comme ma base à l’aide de cet article : http://www.codeproject.com/KB/recipes/VSLanguageService.aspx

Il n’était pas trop mal si vous avez une poignée de base sur les grammaires.

2voto

leppie Points 67289

Il y a un exemple dans le SDK de VS qui montre la plupart des fonctionnalités vous cherchez.

2voto

Alexander Pacha Points 869

J’ai trouvé cette collection très utile d’échantillons récents pour Visual Studio SDK de 2013 : http://blogs.msdn.com/b/vsx/archive/2014/05/30/vs-2013-sdk-samples-released.aspx

Il contient également la version récente de la OokLanguage qui semble prometteur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X