2009-12-01から1ヶ月間の記事一覧

auto-completeに関数と変数の情報源を追加

ac-source-symbolsは大雑把すぎるので、もう少し細かく制御できる情報源を追加しました。一つは関数をオムニ補完するac-source-functionsという情報源で、もう一つは変数を補完するac-source-variablesという情報源です。ac-source-functionsは(の直後のシン…

popup.elによるポップアップメニュー、カスケードポップアップメニュー、ツールチップの実現

さまざまな現代的なインターフェースを実現できるようpulldown.elを大幅に拡張しました。それに伴って抽象度も上がったため、pulldown.elという名前は少し内容にそぐわなくなりました。そこでpulldown.elあらためpopup.elという名前で開発を続けていくことに…

指定したポイントにうまくツールチップを表示できない

x-show-tip関数を使えばマウスカーソルからの任意の相対位置にツールチップを表示できますが、あくまでマウスカーソルと併用することを前提とされているため、きわめてありえるケース、つまりバッファ上の論理的なポイント付近にツールチップを表示すること…

scratchバッファで不用意に評価されないようにする

scratchバッファの存在意義であるC-j(カーソルの直前にあるS式を評価して出力)ですが、関数定義中などでは一時的に通常の動作(改行+インデント)に戻ってほしいことがあります。次のコードを評価すると、まさにその挙動を手に入れることができます。 (de…

auto-completeに大文字小文字を区別しないオプションを追加しました

ac-ignore-case変数をtあるいはsmartにすることにより、大文字小文字を区別せずに補完できるようになりました。デフォルトはnilです。ac-ignore-case変数をtにすると、無条件に大文字小文字を区別しなくなります。smartにすると、プリフィックス(補完中文字…

loopマクロのcollect節でintoを使うと非常に遅い

loopマクロでcollect節と一緒にintoを使うと演算コストが非常に大きくなるという話。原因を探るためにintoなしとintoありのloopマクロをmacroexpandで展開してpretty-printしてみます。どちらの演算式も返す値は同じになります。 ;; intoなし (pp (macroexpa…