source insight使用(5)

2019-04-15 14:54

sz = Ask(\ if (sz != \ {

// IfdefSz(sz);

hwnd = GetCurrentWnd() sel = GetWndSel(hwnd) hbuf = GetWndBuf(hwnd)

// get line the selection (insertion point) is on szLine = GetBufLine(hbuf, sel.lnFirst - 1); chTab = CharFromAscii(9)

// prepare a new indented blank line to be inserted. // keep white space on left and add a tab to indent. // this preserves the indentation level. i = 0 /* loop control */ ich = \

while (szLine[i] == \ {

ich = Cat(ich, szLine[i]) i = i + 1 }

InsBufLine(hbuf, sel.lnFirst, \

InsBufLine(hbuf, sel.lnFirst + 1, \ InsBufLine(hbuf, sel.lnFirst + 2, \

InsBufLine(hbuf, sel.lnFirst + 3, \/* @sz@ */\ SetBufIns(hbuf, sel.lnFirst + 2, StrLen(ich) + StrLen(chTab)) } }

// Wrap ifdeinef .. endif around the current selection macro IfdefineSz(sz) {

hwnd = GetCurrentWnd() lnFirst = GetWndSelLnFirst(hwnd) lnLast = GetWndSelLnLast(hwnd) hbuf = GetCurrentBuf()

InsBufLine(hbuf, lnFirst, \ InsBufLine(hbuf, lnFirst + 1, \ InsBufLine(hbuf, lnLast + 3, \/* @sz@ */\ SetBufIns(hbuf, lnFirst + 2, 0) }

/* A U T O E X P A N D */

/*------------------------------------------------------------------------- Automatically expands C statements like if, for, while, switch, etc.. To use this macro,

1. Add this file to your project or your Base project. 2. Run the Options->Key Assignments command and assign a convenient keystroke to the \

3. After typing a keyword, press the AutoExpand keystroke to have the statement expanded. The expanded statement will contain a ### string which represents a field where you are supposed to type more. The ### string is also loaded in to the search pattern so you can use \ For example:

1. you type \ 2. this is inserted:

for (###; ###; ###) { ### }

3. and the first ### field is selected.

-------------------------------------------------------------------------*/

/******************************************************************************

* AutoExpand - Automatically expands C statements *

* DESCRIPTION: - Automatically expands C statements like if, for, while, * switch, etc.. * * Input: * Output: * Returns: *

* modification history * --------------------

* 01a, 27mar2003, t357 modified * --------------------

******************************************************************************/

macro AutoExpand() {

// get window, sel, and buffer handles hwnd = GetCurrentWnd() if (hwnd == 0) stop

sel = GetWndSel(hwnd)

if (sel.ichFirst == 0) stop

hbuf = GetWndBuf(hwnd)

// get line the selection (insertion point) is on szLine = GetBufLine(hbuf, sel.lnFirst);

// parse word just to the left of the insertion point wordinfo = GetWordLeftOfIch(sel.ichFirst, szLine) ln = sel.lnFirst;

chTab = CharFromAscii(9)

// prepare a new indented blank line to be inserted. // keep white space on left and add a tab to indent. // this preserves the indentation level. ich = 0

while (szLine[ich] == ' ' || szLine[ich] == chTab) {

ich = ich + 1 }

szLine = strmid(szLine, 0, ich) sel.lnFirst = sel.lnLast sel.ichFirst = wordinfo.ich sel.ichLim = wordinfo.ich // expand szWord keyword...

if (wordinfo.szWord == \ wordinfo.szWord == \ wordinfo.szWord == \ {

SetBufSelText(hbuf, \

InsBufLine(hbuf, ln + 1, \

InsBufLine(hbuf, ln + 2, \ InsBufLine(hbuf, ln + 3, \ }

else if (wordinfo.szWord == \ {

SetBufSelText(hbuf, \

InsBufLine(hbuf, ln + 1, \ InsBufLine(hbuf, ln + 2, \ InsBufLine(hbuf, ln + 3, \ }

else if (wordinfo.szWord == \ {

SetBufSelText(hbuf, \

InsBufLine(hbuf, ln + 1, \ InsBufLine(hbuf, ln + 2, \ InsBufLine(hbuf, ln + 3, \

InsBufLine(hbuf, ln + 4, \ InsBufLine(hbuf, ln + 5, \ InsBufLine(hbuf, ln + 6, \ InsBufLine(hbuf, ln + 7, \ }

else if (wordinfo.szWord == \ {

InsBufLine(hbuf, ln + 1, \ InsBufLine(hbuf, ln + 2, \ InsBufLine(hbuf, ln + 3, \ }

else if (wordinfo.szWord == \ {

SetBufSelText(hbuf, \


source insight使用(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:泡沫板项目投资可行性研究报告(目录)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: