5

私はプログラミング経験を向上させたいと思っています。私はVisual Studio(2012)拡張機能を作成することでそれを実現できます。私はMSDNのドキュメントを掘り起こし始めましたが、それは密であり、私はそれを介して作業しています。VS HTML/CSS操作用エクステンション

私はいくつかの質問を持っていた:

  1. は、シナリオのための正しいアプローチは以下 を説明拡張子ですか?
  2. もしそうなら、どのようなアイデアが私は掘り出し始めるべきですか?
  3. 賢者の知恵/リンクRE:「落とし穴」または「つかんだ」?

セットアップ 私は、HTMLのブロックを持っており、それが特定の要素にいくつかのインラインCSSを持っています。私は要素を右クリックし、インラインコードを新規または既存のスタイルシート(CSS)に適用したいと思います。

コード

<div> 
    <div class="ui-bar-d ui-bar" > 
     <span class="WBHeaderDetail" style="margin-left: 5px; margin-right: 5px;"> 
      Name: <em class="WBHeaderDetailValue" style="text-decoration: underline;">@ViewBag.JobName</em> 
     </span> 
     <span class="WBHeaderDetail" style="margin-left: 5px; margin-right: 5px;"> 
      Status: <em class="WBHeaderDetailValue" style="text-decoration: underline;">@ViewBag.Status</em> 
     </span> 
     <a data-role="button" data-theme="b" data-icon="check" data-inline="true" data-mini="true" >Save</a>  
    </div> 
</div> 

おそらく、拡張子が露出なる操作は、指定された要素への参照を取得し、インラインCSS(スタイルタグ)を検査、要素からそれを削除し、追加することができそのCSSをプロジェクト/ソリューションの新規または既存のスタイルシートに追加します。要素にすでに 'class'属性の値があるかどうかは、このプロジェクトで選択されたベンダーに影響を与える可能性があります。サーバーコントロールの複雑な性質は、多くの場合、設定が容易になりますし、ダイアログボックスやウィザードが関連付けられているデザインビューでhttp://www.asp.net/vnext/overview/aspnet/whats-new

スマートタスク

、:

が上でこれを見た

UPDATEそれら。たとえば、特別なダイアログボックスを使用して、Repeaterコントロールにデータソースを追加したり、GridViewコントロールに列を追加したりすることができます。

ただし、複雑なプロパティのこの種類のUIヘルプは、ソースビューで使用できませんでした。したがって、Visual Studio 11では、ソースビューのスマートタスクが導入されています。スマートタスクは、C#およびVisual Basicエディタでよく使用される機能のコンテキスト認識ショートカットです。 ASP.NET Web用

フォームコントロールを挿入ポイントが要素内にある場合、スマートタスクは小さなグリフとしてサーバータグに表示されます。

enter image description here

私はそのダイアログの中に私のコードを入手できますか?

感謝!

+0

アドイン/ vsix:はい、これが行く方法です。ガイダンスに関しては、私は通常、似たようなことをしてソースをブラウズするプロジェクトのためにコードプレックスを探します。 – jessehouwing

+0

詳細をご覧ください。改訂された質問を参照してください。 –

+0

私は完全な質問をお読みしました。私の英語はあまり良くないから。なぜあなたはウェブ技術でこれをやっていないのか分かりません。私はあなたがこのすべてについて知っていると確信しています。 '( 'Jquery'クライアント側の非常に良い助けとなりました。 'JUI'は非常に良いインターフェースです。 'AJAXは非常に優れた技術で、サーバーサイドコードとサーバーとのトランザクションを使用できます...)?'とAsあなたはすべてのものがWebアプリケーションのフォームになっていることを知っている。いつでもどこでもアクセス可能なオープンソース。 – ncm

答えて

3

昨年、私はかなり良い結果を得たクラスのために小さなVS拡張を作った。これは、C++コードファイルのソート、フォーマット、再編成と関係していました。あなたがやりたいことと少し違っていますが、私はあなたがCodeMaidを見てみることをお勧めします。それは驚くべき数の機能を持っています。オープンソースなので、私のエクステンションに取り組んでいたときにソースコードが本当に助けになりました。

残念ながら、あなたはHTMLで作業しており、Visual StudioではC#用のコードモデル(基本AST)とC++用の小さなコードしか提供していません。あなたはHTML編集でビジュアルスタジオから助けを得ることはまずありません。

私は2つのことを行います。まず、theseチュートリアルをご覧ください。彼らはあなたのエクステンションのベースを作成し、APIに精通するのを助けます。 (MSのチュートリアルは最高ではないので、知識を増やすために他の人たちを探す必要があるでしょう。)次に、正規表現を磨きます。あなたが望むものを完成させる最良の方法は、ファイルを自分で解析し、インラインスタイルタグのすべてのインスタンスを見つけることです。次に、右クリックメニュー項目を追加し、必要なときに適切なタグを探します。

もう一度、基本的なチュートリアルから始めます。 VS拡張APIはちょっと奇妙なので、まず簡単なことをすることでそれに慣れたいと思うでしょう。

幸いです、あなたはそれが必要です。 :p

編集:これはあなたの質問に直接答えるものではないことをご了承ください。

3

はいVSIXは方法です。

Web Essentialsのコードの一部を見ることができます。ウェブの本質は、あなたがしたいことに似ています。

次はgithubの上のCSSソーターへのリンクです:https://github.com/madskristensen/CssSorter

そして、この1つはHTML ZenCoding機能へのリンクです: https://github.com/madskristensen/zencoding

両者はHTML、CSS、あなたを扱っ伴うので、コードを見て多くの情報を得ることができます。プロジェクトとの唯一の違いは、実際には両方を同時にターゲットにしており、複数のファイルにアクセスしようとしていることです。うまくいけないことに、HTMLとCSSのために、利用可能なパーサーが内蔵されているかどうかわかりません。 ExCSSスタイルシートパーサを:あなたはこれらを試してみることができるように

NuGetでavailbleでいくつかのパッケージは、しかしありhttp://nuget.org/packages/ExCSS/ HtmlAgilityPack:http://nuget.org/packages/HtmlAgilityPack/

私が直接これらのパッケージで働いていないが、私はあなたを推測します」それらを試して、それが適合しているかどうかを調べる必要があります。

smarttasks:これは通常、コントロールデザイナーの一員であり、自分がやりたいことには適していないと思います。コンテキストメニューにあなたの拡張機能を追加するだけです

関連する問題