MAXScript Introduction > The MAXScript Editor > MAXScript Editor Configuration And Customization >

# MAXScript Editor - Properties File Settings

| MAXScript Editor | MAXScript Editor Property File Settings

The Tabbed MAXScript Editor introduced in 3ds Max 2008 can be customized by editing the MXS_Editor.properties and MAXScript.properties files located in the 3ds Max root folder.

To quickly access these two files, use the Tools > Open Global Options File and Tools > Open User Options File menu items in the Editor's menu bar.

The following is a sub-set of all properties supported by the Scintilla control the MAXScript Editor is based upon.These settings can be customized in the global properties file MXS_Editor.properties or the user-generated MXS_EditorUser.properties. Both files are located in the 3ds Max root folder.

For details on the MAXScript-specific settings like file formats and color coding, see the topics MAXScript-Specific Language Settings, Defining Custom Keywords and Customizing Syntax Color Schemes topics.

Note

The Scintilla control and the MAXScript SciTE Editor use UK English spelling. Thus, color-related properties contain the keyword "colour" instead of "color".

The following documentation is based on the document found at http://scintilla.sourceforge.net/SciTEDoc.html

Topic Navigation: |
--- | ---
Directory Property Files Editor Position Windows (Buffers) File Loading File Saving Reloading Prompts Views Code Pages Fonts Margin Selection Caret (Cursor) Visible Policy Edge Mode Control Character Symbol Error Marker Bookmarks Fold Properties | Title Properties Indentation And Tabs Find / Replace Comments Scrollbars Output Pane Status Bars Auto-Complete and Abbreviation User Shortcuts User Context Menu Wrapping Editor Performance Braces and Brackets Printing Exporting Languages Warning Sounds Source Control Integration

## Directory Property Files

| Topic Navigation |  | MAXScript Editor

    properties.directory.enable (MAXScript default: not set)

When set to 1, enables the evaluation of the directory properties file.

The Directory Properties file should be called "SciTEDirectory.properties" and can contain local properties overriding the global properties.

See MAXScript Editor - Customizing Syntax Color Schemes for details.

The default is 0 which disables the evaluation of directory property files.

## Editor Position

| Topic Navigation |  | MAXScript Editor

    position.left (MAXScript default:0)
    position.top (MAXScript default:0)
    position.width (MAXScript default:576)
    position.height (MAXScript default:740)

These properties set the initial window size and position.

If these are omitted then the environment's defaults are used.

If the width or height properties are set to -1 then the window is maximized.

## Windows (Buffers) Properties

| Topic Navigation |  | MAXScript Editor

Note

The multiple windows represented by tabs in the Editor's user interface are called "buffers" in Scintilla lingo, thus the property names.

    buffers (MAXScript default:10)

Set this property to a number between 1 and 100 to enable that many buffers.

Values outside this range are clamped to be within the range.

The default is 1 which turns off UI features concerned with buffers.

This value is read only once, early in the startup process and only from the global properties files.

NoteAfter changing this property, 3ds Max has to be restarted to see the effect.

    buffers.zorder.switching (MAXScript default: not set)

This setting chooses the ordering of windows switching when Ctrl+Tab is pressed.

If set to 1, the windows ares witched in the order of their previous selection.

If set to 0 (default) the windows are ares witched based on the buffer number.

    tabbar.visible (MAXScript default:1)
    tabbar.hide.one (MAXScript default :not set)

Setting tabbar.visible to 1 makes the tab bar visible at start up.

The buffers property must be set to a value greater than 1 for this option to work.

Setting tabbar.hide.one to 1 hides the tab bar until there is more than one tab.

    tabbar.multiline (MAXScript default: not set)

Setting tabbar.multiline uses multiple lines for the tab bar, thus fitting more tabs on screen at the same time.

NoteAfter changing this property, 3ds Max has to be restarted to see the effect.

## File Loading Properties

| Topic Navigation |  | MAXScript Editor

    read.only (MAXScript default :not set)

When this option is set to 1,opened documents will be initially read only.

New files will not be affected by this setting.

    openpath.<filepattern> (MAXScript default: not set)

Defines a path for the File > Open Selected Filename command.

The path is searched if the selected filename doesn't contain an absolute path or the file is not found in the current directory.

The directories in openpath are separated by a semi-colon ';'

An openpath setting may look like:

    openpath.*.txt=c:\dos\;f:\;

    open.suffix.<filepattern> (MAXScript default: not set)

Defines a suffix to add to the selected file name for the Open Selected Filename command in the File menu.

An open.suffix setting may look like:

    open.suffix.*.ms=.ms

    open.filter (MAXScript default: see below)

This is a complex expression used for determining the file types that will be available in the open file dialog.

For each type of file, there is some explanatory text, a '|' character, some file patterns, and another '|' character.

The line continuation character '\' can be used to spread these items out, one per line.

These file types appear in the "Files of type:" drop-down list. The first item is the default, so you may wish to change the first item to include the file types you commonly open.

MAXScript Shipping Defaults:

    open.filter=\
    $(filter.MAXScript)\
    $(filter.text)\
    $(filter.data)\
    $(filter.properties)\
    $(filter.web)\
    $(all.files)

    max.file.size (MAXScript default: not set)

To avoid loading huge files from slow media by accident, or just to ensure the Editor is used to edit human readable code only, you can set the max.file.size property to specify a load file size limit in bytes.

If not set or set to 0, there is no limit.

If set to a given byte size and if a file to be loaded exceeds this limit, the user will be asked if the file has to be loaded.

If accepted, the file will be loaded as usual.

If rejected, the file will not be loaded.

    open.dialog.in.file.directory (MAXScript default: not set)

Setting open.dialog.in.file.directory to 1 causes the open dialog to initially display the same directory as the current file.

If it is0 or not set, the last directory visited by the open dialog of the Editor will be used.

## File Saving Properties

| Topic Navigation |  | MAXScript Editor

    strip.trailing.spaces (MAXScript default: not set)

When set to 1,trailing white spaces will be stripped from the file while saving.

    ensure.final.line.end (MAXScript default: not set)

Ensures the file ends with a line end when saved.

    ensure.consistent.line.ends (MAXScript default:1)

When set to 1, ensures that all lines end with the current Line End Characters setting when saved.

    save.deletes.first (MAXScript default: not set)

When set to 1, causes files to be deleted before being opened for saving.

Can be used to ensure saving under a different capitalization changes the files capitalization rather than silently using the old capitalization.

    quit.on.close.last (MAXScript default: not set)

If this option is set to 1, the Editor will close when the last edited file has been closed, e.g. with File/Close or Ctrl+W.

By default, if this option is not set, the Editor will remain open and will create a new blank document when its last buffer is closed.

    save.recent (MAXScript default:1)

Setting save.recent to 1 causes the most recently used files list to be saved on exit in a file and reloaded at start up.

The file is called MXS_SciTE.recent and is located in the 3ds Max root directory.

    save.session (MAXScript default :not set)

If you set save.session=1 , the current session will be automatically saved to a file MXS_SciTE.ses in the 3ds Max root directory.

When you start 3ds Max next time, the last session will be automatically loaded.

## Reload Properties

| Topic Navigation |  | MAXScript Editor

    load.on.activate (MAXScript default: not set)
    save.on.deactivate (MAXScript default: not set)

When set to 1, the load.on.activate property causes the Editor to check whether the current file has been updated by another process whenever it is activated. This is useful when another editor such as a WYSIWYG HTML editor, is being used in conjunction with the Editor.

When set to 1, the save.on.deactivate property causes the Editor to save the file whenever it loses focus. This is useful when developing web pages and you want to often check the appearance of the page in a browser.

    reload.preserves.undo (MAXScript default: not set)

When set to 1, reloading a file does not delete all the undo history.

This is useful when load.on.activate is used in conjunction with filter commands.

## Prompts

| Topic Navigation |  | MAXScript Editor

    are.you.sure (MAXScript default:1)

Normally, when the Editor is about to close a file which has unsaved edits it asks this question.

To turn off the question, set are.you.sure to 0 and files will be automatically saved without bothering the user. To abandon edits to a file use the New command.It always asks "Are you sure?" giving an opportunity to not save the file.

    are.you.sure.on.reload (MAXScript default: not set)

When both this and load.on.activate are set to 1, the Editor will ask if you really want to reload the modified file, giving you the chance to keep the file as it is.

By default this property is disabled, causing the Editor to reload the file without bothering you if load.on.activate is set to 1.

## View Properties

| Topic Navigation |  | MAXScript Editor

    view.whitespace (MAXScript default:0)
    view.indentation.whitespace (MAXScript default:1)

Setting view.whitespace to 1 makes the Editor start up with whitespace visible.

Setting view.indentation.whitespace to 0 hides visible whitespace inside indentation.

    view.indentation.guides (MAXScript default:1)
    highlight.indentation.guides (MAXScript default:1)

Setting view.indentation.guides to 1 displays dotted vertical lines within indentation white space every indent.size columns .

Setting highlight.indentation.guides to 1 highlights the indentation guide associated with a brace when that brace is highlighted.

    whitespace.fore (MAXScript default: not set)
    whitespace.back (MAXScript default: not set)

Sets the colous used for displaying all visible whitespace, overriding any styling applied by the current lexer.

    view.eol (MAXScript default: not set)

Setting this to 1 makes the Editor display the characters that make up line ends. This looks similar to [CR] , [LF] , or [CR] [LF] .

This is useful when using files created on another operating system with software that is picky about line ends.

    eol.mode (MAXScript default: not set)

The default EOL mode (characters that make up line ends) depends on the platform the file was created on.

You can overwrite this behavior by setting the property to

CRLF-for DOS/Windows format

LF-for UNIX format

CR-for Macintosh format

    eol.auto (MAXScript default:1)

This setting overrides the eol.mode value and chooses the end of line character sequence based on the current contents of the file when it is opened. The line ending used the most in the file is chosen.

    magnification (MAXScript default: not set)
    output.magnification (MAXScript default: not set)

This property sets the initial magnification factor. It is useful when you want to change the size of text globally, such as after changing the screen resolution without having to touch every style setting.

0 is default, negative values make the size smaller and positive values make it larger.

## Code Page Properties

| Topic Navigation |  | MAXScript Editor

    code.page (MAXScript default:-1)
    output.code.page (MAXScript default: not set)

To support a DBCS language such as Japanese, a code page can be set here. This ensures that double byte characters are always treated as a unit so the caret is never located between the two bytes of a double byte character. On Windows, 0 (single byte character set) and 65001 (UTF-8) will work and settings that may work, depending on how Windows is set up, include 932 (Japanese Shift-JIS), 936 (Simplified Chinese GBK), 949 (Korean), 950 (Traditional Chinese Big5), and 1361(Korean Johab).

Setting code.page to 65001 starts Unicode mode and the document is treated as a sequence of characters expressed as UTF-8. Display is performed by converting to the platform's normal Unicode encoding first so characters from any language will be displayed. Correct glyphs will only be displayed if fonts are chosen that contain the appropriate glyphs. Tahoma is a good choice on Windows 2000.

This property can not set a single byte character set.

Fonts with an "iso10646" registry should be used in a font set. Font sets are a '|' separated list of partial font specifications where each partial font specification can be in the form of foundry-fontface-charsetregistry-encoding *OR* fontface-charsetregistry-encoding *OR* foundry-fontface *OR* fontface. An example is "misc-fixed-iso10646-1|*".

If output.code.page is set then it is used for the output pane which otherwise matches the edit pane.

    character.set (MAXScript default: not set)

This setting allows changing the character set that is asked for when setting up fonts.

To use Japanese characters, set character.set to 128.

Other values that may work include

Chinese (GB2312=134 or BIG5=136),

Korean (129),

Greek (161),

Eastern European (238),

Baltic (186),

Turkish (162),

Hebrew (177),

Arabic (178),

Thai (222).

To use Cyrillic characters, set character.set=204 (CP1251 encoding).

## Font Properties

| Topic Navigation |  | MAXScript Editor

    font.monospace (MAXScript default: font: Courier New,size:10)

Defines the font name and size to be used when the Use Monospaced Font command is performed using the same syntax as the style properties described in the MAXScript-Specific Language Settings topic.

## Margin Properties

| Topic Navigation |  | MAXScript Editor

    blank.margin.left (MAXScript default: 4)
    blank.margin.right (MAXScript default: 4)

There is a blank margin on both sides of the text. It is drawn in the background color of default text.

This defaults to one pixel for both left and right sides but may be altered with these settings.

    margin.width (MAXScript default:16)

Setting this to a number makes the Editor display a selection margin to the left of the text.

The value is the selection margin in pixels.

Line markers are displayed in the selection margin area.

    fold.margin.colour (MAXScript default: not set)
    fold.margin.highlight.colour (MAXScript default: not set)

These two properties defined the fold margin color and fold margin highlight color.

If they are not defined, the colors for the fold margin will default to a reasonable pair of colors - the system colors will used to make the fold margin appear like the background of scroll bars.

FOR EXAMPLE,
    fold.margin.colour=#FF0000
    fold.margin.highlight.colour=#0000FF
makes the fold margin to appear as a mixture of red and blue:

    full.screen.hides.menu (MAXScript default: not set)

Setting this property to 1 hides the menu bar when the Editor is switched to Full Screenmode. Default is 0.

    minimize.to.tray (MAXScript default: not set)

Setting this property to 1 minimizes the Editor to the system tray rather than to the task bar.

Default is 0.

    line.margin.visible (MAXScript default: 1)
    line.margin.width (MAXScript default: 3+)

The Editor is able to display a column of line numbers to the left of the selection margin.

Setting line.margin.visible to 1 makes this column visible at startup.

The line.margin.width property controls how much space is reserved for the line numbers, in terms of the number of digits that can be displayed.

To specify that the margin should expand if needed to accommodate larger line numbers, add a '+' after the number of digits,

FOR EXAMPLE,
    line.margin.width=3+

## Selection Properties

| Topic Navigation |  | MAXScript Editor

    selection.fore (MAXScript default: not set)
    selection.back (MAXScript default:#000000)
    selection.alpha (MAXScript default:30)

Sets the colors used for displaying selected text.

If one of these is not set then that attribute is not changed for the selection.

The default is to show the selection by changing the background to light gray and leaving the foreground the same as when it was not selected.

The translucency of the selection is set with selection.alpha.

FOR EXAMPLE,
    line.margin.width=3+

## Caret (Cursor) Properties

| Topic Navigation |  | MAXScript Editor

    caret.fore

Sets the color used for the caret (cursor).

    caret.line.back (MAXScript default: not set)
    caret.line.back.alpha (MAXScript default: not set)

The caret.line.back property sets the background color used for the line containing the caret.

The caret.line.back.alpha property sets the translucency used for the line containing the caret.

Translucency ranges from 0 for completely transparent to 255 for opaque.

256 means opaque and not using translucent drawing code which may be slower.

    caret.period (MAXScript default:)

Sets the rate at which the caret blinks.

The value is the time in milliseconds that the caret is visible before it is switched to invisible. It then stays invisible for the same period before appearing again.

A value of 0 stops the caret from blinking.

    caret.width (MAXScript default:)

Sets the width of the caret in pixels.

Valid values are 1, 2, or 3.

    caret.policy.xslop (MAXScript default:)
    caret.policy.width (MAXScript default:)
    caret.policy.xstrict (MAXScript default:)
    caret.policy.xeven (MAXScript default:)
    caret.policy.xjumps (MAXScript default:)

    caret.policy.yslop (MAXScript default:)
    caret.policy.lines (MAXScript default:)
    caret.policy.ystrict (MAXScript default:)
    caret.policy.yeven (MAXScript default:)
    caret.policy.yjumps (MAXScript default:)

If slop is set, we can define a slop value: width for xslop, lines for yslop. This value defines an unwanted zone (UZ) where the caret is... unwanted. This zone is defined as a number of pixels near the vertical margins, and as a number of lines near the horizontal margins. By keeping the caret away from the edges, it is seen within its context, so it is likely that the identifier that the caret is on can be completely seen, and that the current line is seen with some of the lines following it which are often dependent on that line.

If strict is set, the policy is enforced strictly. The caret is centered on the display if slop is not set, and cannot go in the UZ if slop is set.

If jumps is set, the display is moved more energetically so the caret can move in the same direction longer before the policy is applied again. '3UZ' notation is used to indicate three time the size of the UZ as a distance to the margin.

If even is not set, instead of having symmetrical UZs, the left and bottom UZs are extended up to right and top UZs respectively. This way, we favor the displaying of useful information: the beginning of lines, where most code resides, and the lines after the caret, eg. the body of a function.

See the table below to see how these settings interact. Default: xslop, yslop, xeven, yeven=1, width=50, all others = 0.

slop | strict | jumps | even | Caret can go to the margin | When reaching limit (going out of visibility or going into the Unwanted Zone-UZ) display is...
0 | 0 | 0 | 0 | Yes | moved to put caret on top/on right
0 | 0 | 0 | 1 | Yes | moved by one position
0 | 0 | 1 | 0 | Yes | moved to put caret on top/on right
0 | 0 | 1 | 1 | Yes | centered on the caret
0 | 1 | - | 0 | Caret is always on top/on right of display | -
0 | 1 | - | 1 | No, caret is always centered | -
1 | 0 | 0 | 0 | Yes | moved to put caret out of the asymmetrical UZ
1 | 0 | 0 | 1 | Yes | moved to put caret out of the UZ
1 | 0 | 1 | 0 | Yes | moved to put caret at 3UZ of the top or right margin
1 | 0 | 1 | 1 | Yes | moved to put caret at 3UZ of the margin
1 | 1 | - | 0 | Caret is always at UZ of top/right margin | -
1 | 1 | 0 | 1 | No, kept out of UZ | moved by one position
1 | 1 | 1 | 0 | No, kept out of UZ | moved to put caret at 3UZ of the margin

    caret.sticky (MAXScript default:)

Controls when the last position of the caret on the line is modified.

When set to 1, the position is not modified when you type a character, a tab, paste the clipboard content or press backspace.

The default is 0 which turns off this feature.

## Visible Policy Properties

| Topic Navigation |  | MAXScript Editor

    visible.policy.strict (MAXScript default:)
    visible.policy.slop (MAXScript default:)
    visible.policy.lines (MAXScript default:)

Determines how the display area is determined after a Go to command or equivalent such as a Find or Next Message. Options are similar to caret.policy .

## Edge Mode Properties

| Topic Navigation |  | MAXScript Editor

    edge.mode (MAXScript default:0)
    edge.column (MAXScript default:200)
    edge.colour (MAXScript default: #CODCCO)

Indicates long lines.

Possible values are:

0 - default, does not indicate long lines.

1 - uses a vertical line to indicate the specified column and

2 - changes the background color of characters beyond that column.

Note

For proportional fonts, an edge.mode of 2 is more useful than 1.

## Control Character Symbol Properties

| Topic Navigation |  | MAXScript Editor

    control.char.symbol (MAXScript default: not set)

Sets the character to use to indicate control characters.

If not set, control characters are shown as mnemonics.

## Error Marker Properties

| Topic Navigation |  | MAXScript Editor

    error.marker.fore (MAXScript default: not used)
    error.marker.back (MAXScript default: not used)

The colors used to indicate error and warning lines are set with these two values.

If there is a margin on a pane then a symbol is displayed in the margin to indicate the line causing the error message for the edit pane.

The error.marker.back is used as the fill color of the symbol and the error.marker.fore as the outline color.

If there is no margin then the background to the line is set to the error.marker.back color.

## Bookmark Properties

| Topic Navigation |  | MAXScript Editor

    bookmark.fore (MAXScript default: not set)
    bookmark.back (MAXScript default: not set)
    bookmark.alpha (MAXScript default: not set)

The colors used to display bookmarks in the margin.

If bookmark.fore is not set then a blue sphere is used.

When the margin is turned off, bookmarks are shown by a change in the background color of the line with the translucency set with bookmark.alpha.

## Fold Properties

| Topic Navigation |  | MAXScript Editor

    fold (MAXScript default: 1)
    fold.margin.width (MAXScript default: 12)
    fold.symbols (MAXScript default: 3)
    fold.on.open (MAXScript default: not set)

Options to control folding.

Folding is turned on be setting fold to 1.

The fold.symbols setting chooses between four ways of showing folding.

Set to 0 (the default) for MacOS style arrows to indicate contracted (facing right) and expanded (facing down);

1 to display contracted folds with "+" and expanded with "-";

2 for a flattened tree control with round headers and rounded joins;

3 for a flattened tree control with square headers.

To automatically fold files as much as possible when loaded, set fold.on.open to 1.

    fold.compact (MAXScript default: 0)

For HTML, XML, Lua and C++ and similar files, turning this option on leads to blank lines following the end of an element folding with that element. Defaults to on.

    fold.html (MAXScript default: not set)

Folding is turned on or off for HTML and XML files with this option. The fold option must also be on for folding to occur.

## Title Properties

Topic Navigation

    title.full.path (MAXScript default: 1)

Chooses how the file name is displayed in the title bar.

When 0 (default) the file name is displayed.

When 1 the full path is displayed.

When 2 the window title displays "file name in directory".

    title.show.buffers (MAXScript default: not set)

When set to 1 shows the current buffer number in the title bar.

## Indentation and Tabs Properties

| Topic Navigation |  | MAXScript Editor

    tabsize (MAXScript default: 8)
    tab.size.<filepattern> (MAXScript default: not set)
    indent.size (MAXScript default: 8)
    indent.size.<filepattern> (MAXScript default: not set)
    use.tabs (MAXScript default: 1)
    use.tabs.<filepattern> (MAXScript default: not set)
    indent.auto (MAXScript default: not set)
    tab.indents (MAXScript default: not set)
    backspace.unindents (MAXScript default: not set)

Sets the size of a tab as a multiple of the size of a space character in the style of the default style definition.

The indent size is the size to use when performing automatic indentation and may be different from the tab size. Many people use a tab size of 8 but 4 character indentation.

When creating indentation, use.tabs determines whether the indentation is made up purely from space characters or from a mix of tabs and spaces using as many tabs as possible.

The global tab size, indent.size , and use.tabs properties can be overridden for files that match a pattern by using the file pattern forms:

    indent.size.*.pas=3

If indent.auto is set then indent.size and use.tabs are set according to the contents of the opened document.

If tab.indents is set then pressing Tab within indentation whitespace indents by indent.size rather than inserting a tab character.

If backspace.unindents is set to 1 then pressing Backspace within indentation whitespace unindents by indent.size rather than deleting the character before the caret.

    indent.automatic (MAXScript default: 1)
    indent.opening (MAXScript default: 0)
    indent.closing (MAXScript default: 0)
    indent.maintain.<filepattern> (MAXScript default: not set)

Determines the look of automatic indentation.

Automatic indentation is turned on with indent.automatic=1 .

To indent a brace line after a compound statement start set indent.opening=1 , likewise for the terminating brace.

FOR EXAMPLE,
    indent.automatic=0
    indent.opening=0
With both set to 0, the result look like this:
    if i == 10 do
    (
        print "Yes!"
    )
    indent.automatic=1
    indent.opening=1
With both set to 1, the result look like this:
     if i == 10 do
        (
        print "Yes!"
        )

Automatic indentation may be changed to simply repeat the indentation of the previous line for some files with indent.maintain.<filepattern>=1 which overrides the other language specific settings.

    statement.indent.<filepattern> (MAXScript default: set internally)
    statement.end.<filepattern> (MAXScript default: not set)
    statement.lookback.<filepattern> (MAXScript default: not set)
    block.start.<filepattern> (MAXScript default: not set)
    block.end.<filepattern> (MAXScript default: not set)

Each of these settings starts with a style number and then a set of words or characters that define how to recognize that feature. If there is a second space in the setting then it is a set of words, otherwise a set of characters. The set of keywords used to indicate the start of a compound statement is defined in statement.indent .

FOR EXAMPLE,
    statement.indent.$(file.patterns.cpp)=5 if else while
says that for C++ the words "if", "else", and "while" in keyword style, 5, start compound statements which leads to the next line being indented if no other factors affect it. However, if a statement end is found on the same line then the next line is not indented. For C++ the statement end is the semicolon in the operator style, so this is defined:
    statement.end.$(file.patterns.cpp)=10 ;

The number of lines looked at to determine indentation can be set with statement.lookback . This can be used either to bound the amount of time spent on this task or to specify that only the last line be examined for indentation. The block.start and block.end properties define the language elements used to bracket groups of statements. In C++ these are '{' and '}'.

    vc.home.key (MAXScript default: 1)

Chooses the behavior of the Home and Shift+Home keys.

1(default)is like Visual C++ moving the caret to the end of the line indentation unless already there, in which case it moves to the start of the line.

0 moves to the start of the line.

## Find / Replace Properties

| Topic Navigation |  | MAXScript Editor

Topic Navigation

    find.mark (MAXScript default: not set)

If set, then the Mark All command in the Find dialog will draw translucent boxes over each string found.

    find.replace.matchcase (MAXScript default: not set)
    find.replace.regexp (MAXScript default: not set)
    find.replace.wrap (MAXScript default: not set)
    find.replace.escapes (MAXScript default: not set)
    find.replacewith.focus (MAXScript default: not set)

These properties define the initial conditions for find and replace commands.

The find.replace.matchcase property turns on the "Match case" option, find.replace.regexp the "Regular expression" option, find.replace.wrap the "Wrap around" option and find.replace.escapes the "Transform backslash expressions" option.

If the find.replacewith.focus property is set, the "Replace With" input box is focused in Replace dialog if "Find What" is non-empty.

    find.replace.regexp.posix (MAXScript default: not set)

Change the behavior of the Regular Expression search.

If set to 0 (the default), the characters '(' and ')' must be escaped by '\' to behave as RegEx meta characters.

If set to 1, these characters are meta characters themselves.

See Regular Expressions Find and Replace in the MAXScript Editor

    find.replace.advanced (MAXScript default: not set)

Enables Replace in Buffers command and Search only in this style checkbox.

If enabled, searches can be restricted to a particular style (e.g. strings).

    find.files (MAXScript default: *.ms *.mcr)

This is the default set of files to search through using the Find in Files command.

The find.files property can contain a list of sets of files separated by '|' like "*.cxx *.h|*.py *.pyw|*.html" which adds three entries to the history and uses the first as the default value.

The evaluation of this setting is a little unusual in that each entry in the value from the property files is appended to the end of the history if that entry is not already present. This means that opening files from different directories will result in any local setting of find.files being added to the list.

    find.in.dot (MAXScript default: not set)

If find.in.dot is 1 then Find in Files searches in directories that start with '.'. The default behavior is to prevent the Editor from finding matches in the unmodified versions of files kept by Subversion in .svn subdirectories.

    find.in.binary (MAXScript default: not set)

If find.in.binary is 1 then Find in Files displays matches in binary files.

For Find in Files, a binary file is a file that contains a NUL byte in the first 64K block read from the file.

    find.in.files.close.on.find (MAXScript default: not set)

Set to 0 to prevent the Find in Files dialog from closing when "Find" pressed.

## Comment Properties

| Topic Navigation |  | MAXScript Editor

    comment.block.<lexer> (MAXScript default: set internally)
    comment.block.at.line.start.<lexer> (MAXScript default: set internally)
    comment.stream.start.<lexer> (MAXScript default: set internally)
    comment.stream.end.<lexer> (MAXScript default: set internally)
    comment.box.start.<lexer> (MAXScript default: set internally)
    comment.box.middle.<lexer> (MAXScript default: set internally)
    comment.box.end.<lexer> (MAXScript default: set internally)

These settings are for the comment commands in the Edit menu and are defined separately for each lexer. Not all languages support both stream and block comments.

Block comments are comments that start with a particular string and continue until the end of line. The comment.block property sets the string to be inserted or deleted at the start of the selected lines when the Block Comment or Uncomment command is performed. To make this command perform sensibly over a range of text that already contains comments and other code, the string can be defined to contain a character such as '~' that is not used in real comments.

Set comment.block.at.line.start to "1" to place block comment symbols at the start of the lines, instead of just before the first non-blank character of the lines.

Stream comments start with a particular string and end with another particular string and may continue over line ends. These are defined with comment.stream.start and comment.stream.end .

Box comments are a form of stream comment that takes several lines and uses different strings for the start, end and other lines in the range. These are defined with comment.box.start , comment.box.middle and comment.stream.end .

## Scrollbars Properties

| Topic Navigation |  | MAXScript Editor

    horizontal.scrollbar (MAXScript default: not set)
    horizontal.scroll.width (MAXScript default: not set)
    end.at.last.line (MAXScript default:)

If horizontal.scrollbar set to 0 then the edit pane's horizontal scrollbar is not displayed.

horizontal.scroll.width is the document width assumed for scrolling.

The vertical scroll range is normally set so that maximum scroll position has the last line at the bottom of the view. Set end.at.last.line to 0 to allow scrolling one page below the last line.

## Output Pane

| Topic Navigation |  | MAXScript Editor

    split.vertical (MAXScript default: 1)
    output.horizontal.size (MAXScript default: 200)
    output.vertical.size (MAXScript default: 60)
    output.initial.hide (MAXScript default: 1)

If split.vertical is set to 1 then the output pane is to the right of the editing pane, if set to 0 then the output pane is below the editing pane.

The output.*.size settings determine the initial size of the output pane.

If output.initial.hide is 1, then the output pane is hidden when SciTE first starts up even when output.*.size is set; otherwise the output pane is shown at startup.

    output.horizontal.scrollbar (MAXScript default: 0)
    output.horizontal.scroll.width (MAXScript default: 10000)

If output.horizontal.scrollbar is set to 0 then the Output pane's horizontal scrollbar is not displayed.

The output.horizontal.scroll.width is the Output width assumed for scrolling.

    output.scroll (MAXScript default: 0)

To stop the output pane from automatically scrolling, set output.scroll to 0.

To have the output pane scroll and return back to the line of the executed command, set output.scroll to 1.

If you want the output pane to scroll and remain at the bottom after execution, set output.scroll to 2.

## Status Bar Properties

| Topic Navigation |  | MAXScript Editor

    statusbar.visible (MAXScript default: 1)

Setting this to 1 makes the status bar visible at start up.

    statusbar.number (MAXScript default: 4)
    statusbar.text.<number> (MAXScript default: see link below)

The statusbar.text.1 option defines the information displayed in the status bar by default on all platforms.

Property values may be used in this text using the $() syntax.

Commonly used properties are: ReadOnly , EOLMode , BufferLength , NbOfLines (in buffer), SelLength (chars), SelHeight (lines).

Extra properties defined for the status bar are LineNumber , ColumnNumber , and OverType which is either "OVR" or "INS" depending on the overtype status.

You can also use file properties, which, unlike those above, are not updated on each keystroke: FileName or FileNameExt , FileDate and FileTime and FileAttr .

You can also use CurrentDate and CurrentTime to display the system date and time.

Further status bars may be set as statusbar.text.2 and so on. You can cycle between them by clicking the status bar.

The statusbar.number option defines how many texts are to be cycled through.

See MAXScript Editor - Defining Custom Status Bars for more details.

## Auto-Complete and Abbreviations Properties

| Topic Navigation |  | MAXScript Editor

    abbreviations.<filepattern> (MAXScript default: not set)

Loads an abbreviations file for a particular language, overriding the default abbreviations file.

FOR EXAMPLE,
    abbreviations.*.MAXScript=$(SciteUserHome)/my_mxs_abbrev.properties

    api.<filepattern> (MAXScript default: not set)

Loads a set of API files for a particular language.

If there is more than one API file then the file names are separated by ';'.

API files contain a sorted list of identifiers and function prototypes, one per line.

The "Complete Symbol" command looks at the characters before the caret and displayed the subset of the API file starting with that string.

When an opening brace is typed, the file is searched for the text preceding the caret and if a function prototype is found then it is displayed as a calltip.

FOR EXAMPLE,
    api.*.c=w.api
could be used with a w.api file containing
    fclose (FILE* fileClose)
    FILE
    fopen (const char* szFileName, const char* szMode)
    fpos_t
    fread (void* buf, size_t size, size_t count, FILE* file)
    fseek (FILE* file, long lnOffset, int nOrigin)
to provide auto-completion and calltips for some of the C file functions. It is best to use the full path to the API file as otherwise the current directory is used.

    autocomplete.choose.single (MAXScript default: not set)

When set to 1 and an auto-completion list is invoked and there is only one element in that list then that element is automatically chosen.

This means that the matched element is inserted and the list is not displayed.

    autocompleteword.automatic (MAXScript default: not set)

If this setting is 1 then when typing a word, if only one word in the document starts with that string then an auto completion list is displayed with that word so it can be chosen by pressing Tab.

    autocomplete.<lexer>.ignorecase (MAXScript default: not set)
    autocomplete.*.ignorecase (MAXScript default: not set)

When set to 1 the API file is searched in a case insensitive way to find elements for auto-completion lists.

Otherwise matches only occur if case also matches.

The * form is used if there is no lexer specific setting.

    autocomplete.<lexer>.start.characters (MAXScript default: not set)
    autocomplete.*.start.characters (MAXScript default: not set)

If this setting is not empty, typing any of the characters will cause auto completion to start.

For example, if autocomplete.MAXScript.start.characters =. and the API file for MAXScript contains "meshop.getVert" and "meshop.getFace" then typing "meshop." will cause the auto-completion to display both identifiers. The

* form is used if there is no lexer specific setting.

    autocomplete.<lexer>.fillups (MAXScript default: not set)
    autocomplete.*.fillups (MAXScript default: not set)

If this setting is not empty, typing any of the characters will cause auto-completion to complete.

For example, if autocomplete.MAXScript.fillups=Space and the API file for MAXScript contains "meshop.getVert" then typing "meshop.g" will cause "meshop.getVert" to be inserted.

The * form is used if there is no lexer specific setting.

    calltip.<lexer>.ignorecase (MAXScript default: not set)
    calltip.*.ignorecase (MAXScript default: not set)

When set to 1 the API file is searched in a case insensitive way to find the function which will have its signature displayed as a calltip.

The * form is use if there is no lexer specific setting.

    calltip.<lexer>.word.characters (MAXScript default: not set)
    calltip.*.word.characters (MAXScript default: not set)

To determine the identifier to look up for calltips, a search is performed allowing the characters in this set to be included in the identifier. While the same setting can be used as for word.characters , sometimes additional characters may be allowed.

For example, in Python, '.' is not normally considered part of a word when selecting text, but it is good to allow "string.replace" to show a calltip so calltip.python.word.characters=._$(chars.alpha) would be a reasonable setting.

The * form is used if there is no lexer specific setting..

    calltip.<lexer>.parameters.start (MAXScript default: not set)
    calltip.<lexer>.parameters.end (MAXScript default: not set)
    calltip.<lexer>.parameters.separators (MAXScript default: not set)
    calltip.*.parameters.start (MAXScript default: not set)
    calltip.*.parameters.end (MAXScript default :not set)
    calltip.*.parameters.separators (MAXScript default :not set)

Allows you to specify characters which start, end and separate parameters.

For most common languages, it's usually left brace for start, right brace for end and comma or semicolon for separator.

E.g. CSS has colon for start, space for separator and nothing for end. You can specify more characters for each property.

The * form is used if there is no lexer specific setting.

    calltip.<lexer>.end.definition (MAXScript default: not set)
    calltip.*.end.definition (MAXScript default :not set)

API files may contain explanatory text after each function definition.

To display the explanation on a second line, set this property to the character used at the end of the definition part.

For most languages, this is ')'.

The * form is used if there is no lexer specific setting.

    xml.auto.close.tags (MAXScript default: not set)

For XML and HTML, setting this property to 1 will automatically insert the corresponding end tag when '>' is typed to end a start tag.

Type "<td>" and the result will be "<td></td>" with the caret placed between the tags.

    html.tags.case.sensitive (MAXScript default: not set)

For XML and HTML, setting this property to 1 will make tags match in a case sensitive way which is the expected behavior for XML and XHTML.

## User Shortcuts Properties

| Topic Navigation |  | MAXScript Editor

    user.shortcuts (MAXScript default: see link below)

Defines keyboard shortcuts to perform custom commands. This is a '|' delimited list of keys and the commands they produce.

See MAXScript Editor - Defining Custom Keyboard Shortcuts for details.

## User Context Menu Properties

| Topic Navigation |  | MAXScript Editor

    user.context.menu (MAXScript default: not set)

Define additional commands for the context menu.

This is a '|' delimited list of menu items and the commands they produce with commands defined as in user.shortcuts .

An empty item produces a separator.

    user.context.menu=\ ||\ Next File|IDM_NEXTFILE|\ Prev File|IDM_PREVFILE|

## Wrap Properties

| Topic Navigation |  | MAXScript Editor

    wrap (MAXScript default: not set)

If wrap set to 1 then the edit pane is dynamically line wrapped.

This option has a high performance cost which is proportional to the amount of text so should be turned off for large documents on slow machines.

    wrap.style (MAXScript default: not set)

Chooses between word wrapping (1, the default) and character wrapping (2).

Character wrapping is a better choice for Asian languages with no spaces between words.

    wrap.visual.flags (MAXScript default: not set)

Flags to display markers at end and begin of wrapped lines for visual identify them.

Possible values are:

0 - do not display markers (default).

1 - display markers at end of wrapped lines

2 - display markers at begin of wrapped lines

3 - display markers at begin and end.

    wrap.visual.flags.location (MAXScript default: not set)

Flags to set the location of the display markers (if enabled) near to text or near to border.

0 - display begin and end markers near to border (default).

1 - display end markers near text,

2 - display begin markers near text

3 - display all markers near text.

    wrap.visual.startindent (MAXScript default: not set)

Sets the indention of continued wrapped lines to better visually identify the wrapping.

Default is 0 (no indention).

NoteIf wrap.visual.flags is 2 or 3 (begin marker displayed), the line is indented at least 1, even if wrap.visual.startindent is still 0.

    wrap.aware.home.end.keys (MAXScript default: not set)

This property changes the behavior of the home and end keys when dynamic line wrapping is turned on. When set to 0 (the default), the Home and End keys will move the caret to the very beginning / end of the 'logical' line, whether or not the line is wrapped over multiple lines in the display.

When this property is set to 1, the caret moves to the end of the current 'display' line if you press End once, or to the very end of the 'logical' line if you press End again.

Likewise, the Home key moves first to the beginning of the 'display' line, then on to the very beginning of the line.

In a window where dynamic line-wrapping is not enabled, this setting has no effect.

## Editor Performance-Related Properties

| Topic Navigation |  | MAXScript Editor

    cache.layout (MAXScript default: not set)
    output.cache.layout (MAXScript default: not set)

A large proportion of the time spent in the editor is used to lay out text prior to drawing it. This information often stays static between repaints so can be cached with these settings.

There are four levels of caching:

0 - no caching,

1 - caches the line that the caret is on,

2 - caches the visible page as well as the caret,

3 - caches the whole document.

The more that is cached, the greater the amount of memory used, with 3 using large amounts of memory, 7 times the size of the text in the document.

However, level 3 dramatically speeds up dynamic wrapping by around 25 times on large source files so is a very good option to use when wrapping is turned on and memory is plentiful.

    use.palette (MAXScript default: 0)

Setting this to 1 makes the Editor use a palette to enable it to display more colors on 8 bit displays.

Without this option the Editor will only display with colors already available which is normally the 20 color Windows system palette.

The downside of turning on this option is that there will be some flashing as windows are activated.

## Brace / Bracket Properties

| Topic Navigation |  | MAXScript Editor

    braces.check (MAXScript default: 1)
    braces.sloppy (MAXScript default: 1)
    style.<lexer>.34 (MAXScript default: not set, using global def. above)
    style.<lexer>.35 (MAXScript default: not set, using global def. above)
    braces.<lexer>.style (MAXScript default: not set)

Brace (Bracket) highlighting is a feature that shows the range of a brace when the caret is positioned immediately after it. It is especially useful when complex nested braces are used.

The characters '(', ')', '[', ']', '{', and '}' are considered braces.

The feature defaults to off unless braces.check is set to 1.

If braces.sloppy is set to 1 then if there is no brace before the caret then the character after the caret is checked.

The highlighting is performed by displaying the braces in style number 34 or in style number 35 if there is no matching brace.

While this is a full style, to avoid partial display of the braces, it is best to make this style differ from the standard style of braces only in foreground and background color.

Only braces with style set to braces.<lexer>.style (which defaults to 0) are candidates for brace match highlighting.

## Print Properties

| Topic Navigation |  | MAXScript Editor

    print.magnification (MAXScript default: -1)

Printing is normally done with the same settings as screen display.

To make the printing larger or smaller, the print.magnification setting is added to the size of every font when printed.

To get a good miniaturization of text, set print.magnification to -4.

    print.colour.mode (MAXScript default: not set)

Some people prefer light colored text on a black background on screen but dark text on white on paper.

Possible values are:

0 (default) - print as is.

1 - each color is inverted for printing.

2 - printing produces black text on white background.

3 - forces the background to white

4 - forces the default background to white.

    print.margins (MAXScript default:1500,1000,1000,1500)

Specify the default margins on the printer on Windows in left right top bottom order. Units depends on your locale, either hundredths of millimeters or thousandths of inches. You can see which units by the units used in the page setup dialog.

This property is only read at start up.

    print.header.format (MAXScript default: see below)
    print.footer.format (MAXScript default: see below)

These settings determine what will be printed if anything as headers and footers. Property settings can be substituted into the values using the $(property) syntax. There are some extra properties set up while printing: CurrentPage, FileTime, FileDate, CurrentDate, and CurrentTime (at start of printing). Common properties to use in headers and footers are FileNameExt and FilePath.

A header setting may look like:

print.header.format=$(FileNameExt) - Printed on $(CurrentDate),$(CurrentTime) - Page $(CurrentPage)

#### Shipping defaults set in the fileMXS_Editor.properties:

print.header.format=$(FileNameExt) &emdash; Printed on $(CurrentDate), $(CurrentTime) &emdash; Page $(CurrentPage) print.footer.format=$(FilePath) &emdash; File date: $(FileDate) &emdash; File time: $(FileTime)

    print.header.style (MAXScript default:)
    print.footer.style (MAXScript default:)

These settings determine the style of the header and footer using the same format as other styles in the Editor. Only the fore, back, font, size, bold, italics, and underlined attributes are supported.

#### Shipping defaults set in the fileMXS_Editor.properties:

    print.header.style=font:Arial,size:12,bold
    print.footer.style=font:Arial Narrow,size:10,italics

## Export Properties

| Topic Navigation |  | MAXScript Editor

    export.keep.ext (MAXScript default: not set)

This property determines how the file name is transformed when exporting to include the appropriate export format extension - .html for HTML and .rtf for RTF.

If export.keep.ext is the default, 0, then the current extension is replaced (LineMarker.html).

If it is 1, then the export format extension is added (LineMarker.ms.rtf).

If it is 2 then the final '.' is replaced by '_' and the export format extension added (LineMarker_ms.rtf).

    export.html.wysiwyg (MAXScript default: 1)
    export.html.tabs (MAXScript default: not set)
    export.html.folding (MAXScript default: not set)
    export.html.styleused (MAXScript default: 1)
    export.html.title.fullpath (MAXScript default: not set)

When export.html.wysiwyg is set to 0 then exporting to a HTML file produces a smaller file but which is less completely specified so may look more different to the on screen display. When export.html.tabs is set to 1 and export.html.wysiwyg is set to 0 then tab characters in the file are exported as tab characters rather than a sequence of space characters. The exported file can be made to fold in browsers that support CSS well (Mozilla and Internet Explorer) by setting export.html.folding to 1. Only export styles actually used when export.html.styleused set to 1. The full path name of the file is put in the title, instead of just the file name when export.html.title.fullpath set to 1.

    export.rtf.wysiwyg (MAXScript default: not set)
    export.rtf.tabs (MAXScript default: not set)
    export.rtf.font.face (MAXScript default: not set)
    export.rtf.font.size (MAXScript default: not set)
    export.rtf.tabsize (MAXScript default: not set)

When export.rtf.wysiwyg is set to 0 then exporting to a RTF file produces a smaller file but which is less completely specified so may look more different to the on screen display. When export.rtf.tabs is set to 1 and export.rtf.wysiwyg is set to 0 then tab characters in the file are exported as tab characters rather than a sequence of space characters. export.rtf.font.face and export.rtf.font.size can be used to select a particular font and size for the exported RTF file. export.rtf.tabsize can be set to use a different tab size than that defined by the tab size setting.

    export.pdf.magnification (MAXScript default: 0)
    export.pdf.font (MAXScript default:Helvetica)
    export.pdf.pagesize (MAXScript default:595,842)
    export.pdf.margins (MAXScript default:72,72,72,72)

export.pdf.magnification is a value that is added to the font size of the default screen style in use. A positive value increases the PDF document's font size, and vice versa.

export.pdf.font accepts a one-word parameter that selects one of the default PDF fonts: Courier, Helvetica or Times. Helvetica is the default. Helvetica and Times do not line wrap, Courier line wraps.

export.pdf.pagesize is used to set the document's page size, using points (1/72th of an inch) as the unit. E.g. Letter paper (8.5 inch x 11 inch) is specified using the values 612,792.

export.pdf.margins sets the widths of the page margins. Margins defaults to 72 points, or 1 inch. The PDF exporter is necessarily feature-limited because PDF is a document archival format. Supporting a full set of features would bloat SciTE. Wrapping Helvetica or Times adequately isn't possible without the complexities of font metrics and kerning. The PDF produced uses WinAnsiEncoding, so pre-encoding has to be done before exporting to PDF, if you want to use extended characters.

    export.xml.collapse.spaces (MAXScript default: 1)
    export.xml.collapse.lines (MAXScript default: 1)

These flags control how empty lines and runs of space characters are converted into XML. The flags are enabled if set to 1. Tab characters are always converted by the XML exporter into spaces according to the tab size property.

## Language Properties

| Topic Navigation |  | MAXScript Editor

    translation.missing (MAXScript default: not set)

When using a localized version, if a term is not found in the locale.properties translation file then use the value of translation.missing instead. By setting this to a marker such as "***" it is easier to check where terms have not been provided with translations.

    menu.language (MAXScript default: see below)

Defines the entries in the Language menu and the file extensions they map to.

Each menu item is defined by 3 elements, language name, extension and an optional keyboard equivalent.

Each element is terminated by '|'.

For example:

H&ypertext|html|F12|

Menu items may be commented out by prefixing the name with '#'.

#### Shipping defaults set in the fileMXS_Editor.properties:

    menu.language=\
    Text|txt|Shift+F11|\
    MAXScript|ms||\
    Properties|properties||\
    Hypertext|html||\
    XML|xml||

## Warning Sounds Properties

| Topic Navigation |  | MAXScript Editor

    warning.findwrapped (MAXScript default: not set)
    warning.notfound (MAXScript default: not set)
    warning.wrongfile (MAXScript default: not set)
    warning.executeok (MAXScript default: not set)
    warning.executeko (MAXScript default: not set)
    warning.nootherbookmark (MAXScript default: not set)

Allows for sounds to be played and the window to be flashed when particular events occur.

The values consist of three items separated by ',':

flash duration, sound, sound duration.

If sound is a number then it is treated as a pitch and played for the duration in milliseconds.

Otherwise it is treated as a path to a sound file that is played.

If you do not want a flash, specify 0 for flash duration.

FOR EXAMPLE,
    warning.wrongfile=0,C:\Windows\Media\SFX\Glass.wav
will play the glass sound if open selected is given a bad file name.

The warning.findwrapped warning occurs when a find operation wraps past either end of the file.

The warning.notfound warning occurs when the find fails to find a match.

The warning.executeok warning occurs when a command executes successfully.

The warning.executeko warning occurs when a command fails

The warning.nootherbookmark warning occurs when there is no bookmark to find.

## Source Control Integration

| Topic Navigation |  | MAXScript Editor

    sourcecontrol.command (MAXScript default: not set)

Defines the location of the external source control program, for example Perforce, TortoiseSVN / Subversion and so on.

    sourcecontrol.add.command (MAXScript default: not set)

Defines the command to add a file to the external version control system.

    sourcecontrol.remove.command (MAXScript default: not set)

Defines the command to remove a file from the external version control system.

    sourcecontrol.checkin.command (MAXScript default: not set)

Defines the command to check in a file into the external version control system.

    sourcecontrol.checkout.command (MAXScript default: not set)

Defines the command to check out a file from the external version control system.

FOR EXAMPLE,
The following is the default (but remarked) setup for Perforce as the external source control application:
    # Source Control
    sourcecontrol.command="C:\Program Files\Perforce\p4.exe"
    sourcecontrol.add.command=$(sourcecontrol.command) add "$(FilePath)"
    sourcecontrol.remove.command=$(sourcecontrol.command) delete "$(FilePath)"
    sourcecontrol.checkin.command=$(sourcecontrol.command) submit "$(FilePath)"
    sourcecontrol.checkout.command=$(sourcecontrol.command) edit "$(FilePath)"

| Topic Navigation |  | MAXScript Editor