問題タブ [syntax-highlighting]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - Ruby コードを文字列に変換する
私が書いていないいくつかのコードをリファクタリングしていて、次のような行を見つけました (これはずっと長いので、この例では少しだけ使用しました)。
読みやすくするために、次のようにリファクタリングしました
次に、いくつかの変更を加えたかったのですが、作業中のコードが文字列内にあるため、構文の強調表示、括弧の一致、およびすべての優れた機能が失われます。
文字列の外側にコードを書き、それを文字列に変換する簡単な方法はありますか?
ウェブとスタックオーバーフローを検索しましたが、答えが見つかりませんでした。
詳細については、bret/watirの元のコード(Watir::FileField#set、445 行目) と、zeljkofilipin/watirの私のフォーク(447 ~ 459 行目) を参照してください。
c++ - QPainterカラーテキスト(構文カラー)
逆アセンブリを表示するために使用したカスタムQtウィジェットがあり、構文の色付けを追加しようとしています。
現在、をQPen
単色に設定し、表示したいテキストを作成してQPainter
、適切な座標でレンダリングするだけです。
問題は、構文の色付けを追加するための最良のアプローチは何ですか?私はいくつか考えました:
- 単純に色を論理ブロックに分割し、それぞれの前にQPenを目的の色に設定することができます。
- カラーパレットの変更を表す特別なエスケープ文字を使用して、一度に1文字ずつレンダリングすることができます。
- #1を変更してリストを作成し、リストを
std::pair<QColor, QString>
繰り返して色を設定し、リストの先頭からアイテムをポップしながらテキストを描画するだけで済みます。 - まったく違うもの?
私がリストした3つのアプローチのそれぞれが技術的に機能することは知っていますが、私は非常に効率的な解決策を探しています。このコードはたくさん呼ばれます。また、これは対話型デバッガーであるため、このコードが遅い場合、誰かがすばやくステップまたはトレースすると、目に見える速度低下が見られます。
編集:私は知っていますQSyntaxHighlighter
とQTextDocument
。主な問題は、これらは一般的に私の目的にあまり適していないということです。私はいくつかの柱を持っていますが、それらはすべて仕切りがあり、前後にスライドさせることができます。あなたにアイデアを与えるために、ここに私のデバッガーのスクリーンショットへのリンクがあります。ご覧のとおり、テキストドキュメントとはまったく異なります。実際、それはリストまたはテーブルに近いです。QTextDocument
しかし、通常の描画をやや非現実的にしているカスタム描画がすでにたくさんあります。
編集:私は間違っていました、それはにQTextDocument
直接レンダリングできるようQPainter
です。私が必要なもののように見えます!
編集QTextDocument
:どこで、どのように、またはどのようQTextLayout
に描画するかを制御する方法は不明QPainter
です。私はそれらを無駄に使用しようとしました。したがって、誰かが基本的な例を提供できれば、それは非常に役立ちます。
編集:私は最終的に次のようなものを使用して私が望むものを手に入れることができました:
vim - vim: 拡張機能を言語に関連付けます
私は gvim 7.2 を持っています。それは .d ファイルを認識し、D プログラミング言語の構文に従って正しく強調表示します。ただし、.di ファイルは D ファイルとして認識されず、強調表示されません。
D言語に従ってvimに.diファイルを強調表示させるにはどうすればよいですか?
visual-studio - VS2008のドメイン固有言語の構文の強調表示?
特定の構文を持つドメイン固有言語があります。Visual Studio 2008に通常のエディターでカスタム言語を認識させることは可能ですか?つまり、特定のファイル拡張子を特定の構文の配色スキームに関連付けますか?もしそうなら、これを行う方法について何かアドバイスはありますか?
これが重複している場合は申し訳ありません。検索しましたが、適切な答えが見つかりませんでしたが、それでも簡単な質問のように聞こえます。
よろしく。
python - Cocoa TextViewでの構文の強調表示?経験?提案?アイデア?
重複の可能性:
Cocoaアプリの構文の色付け
CocoaTextViewでの構文の強調表示に興味があります。
私はいくつかのリソースを見つけました:
デリゲートで照合 されたフレックスパターンを介して、フレックスでアプローチします。このアプローチでは、文字列全体が各入力イベントで解析されるため、パフォーマンスが低下します。
textStorageDidProcessEditing
TextView
CocoaDevには、構文の強調表示に関する独自のページがあります。
を使用
NSTextStorageDidProcessEditingNotification
して、編集した範囲を取得し、そこに色を適用します。範囲はwordboundariesまたは何かである可能性があります。これにより、パフォーマンスが確実に向上します。そこに言及:たとえば、Xcodeは現在画面に表示されているテキストのみを色付けし、スクロールするまでドキュメントの残りの部分の色付けを延期します。これをどのように実装しますか?
使用
NSLayoutManager
–一時属性を介して[これは]画面上の描画にのみ使用され、永続的ではありません...ドキュメントにあるように、空白文字が入力されるまで、最後に編集された範囲は色付けされません。UKSyntaxColoredDocumentのようなカスタムヘルパー–すばらしいですが、言語定義はプロパティリストを介して行われます。追加/既存の言語定義を使用する方法は?
アプローチのどれも私には本当に拡張可能または堅牢に見えません(4.多分..を除いて)。
私は、pygmentsのようなSH用の堅牢な既存のライブラリを知っています。およびPyObjCの。
質問: Cocoaで拡張可能でパフォーマンスの高い構文を強調表示するために、たとえばpygmentsなどの既存のライブラリをどのように使用できますTextView
か?
注:私はこの質問が非常に広い(そして長すぎる)ことを知っています。経験や提案、解決策は大歓迎です。ありがとう。
その問題について別の同様のスレッドを見つけました:Cocoaアプリの構文の色付け
ide - Wikiコードの構文の強調表示をサポートしているテキストエディタはどれですか?
テキストエディタ(Notepad ++など)の構文はMediaWikiコードを強調していますか?Wikiスクリプトはそれ自体が言語ですが、これは厳密にはプログラミングに関連していない可能性があります。
ruby - .API ファイルのオートコンプリートを有効にしますか?
N ++サイトで提供されている.APIファイルを使用して、Notepad ++でオートコンプリートを機能させる方法を知っている人はいますか? オートコンプリートは、API フォルダーに XML オートコンプリート ファイルがある言語では問題なく動作しますが、.API ファイルを使用する言語 (ruby、AutoIt など) では完全に機能しません。
私がオンラインで見つけたものから、.API または .XML ファイルを API フォルダーにコピーし、ファイル名が言語メニューの言語名と一致することを確認するだけです。起動時にリフレッシュが発生する問題ではないことを確認するために、N++ を終了しました。
N++ サイトに従って、Ruby.apt および AHK Autohotkey.api ファイルを API フォルダーにコピーしました。
C:\Program Files\Notepad++\plugins\APIs
最新の Notepad++ v5.4.3 を実行しています。アップグレードする前に、3 台のマシンで Notepad++ 5.3.x で試しました。
.net - WPFでの構文の色付け
無料のWPF構文強調表示コンポーネントがあるかどうか誰かが知っていますか?現在、新しいSharDevelopソースの一部であるAvalonEditを使用しています。
私が抱えている問題は、テキストコンテンツのバインドをサポートしていないように見えることです。
これが可能かどうか、またはデータバインディングをサポートする他の同様のコントロールがあるかどうかを誰かが知っていますか?