MAXScript Editor - Properties File Settings

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

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

The following is a sub-set of all properties supported by the Scintilla control on which the MAXScript Editor is based. 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 such as, file formats and color coding, see the topics MAXScript-Specific Language Settings, Defining Custom Keywords, and Customizing Syntax Color Schemes.

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

Directory Property Files

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

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

The Directory Properties file must 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

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, the window is maximized.

Windows (Buffers) Properties

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.

Note: After 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 are switched in the order of their previous selection.

If set to 0 (default) the windows are switched 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.

Note: After changing this property, 3ds Max has to be restarted to see the effect.

File Loading Properties

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 does not 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 might 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 might 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 might want 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 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 is 0 or not set, the last directory visited by the open dialog of the Editor will be used.

File Saving Properties

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 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. For example, 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

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

are.you.sure (MAXScript default:1)

Normally, when the Editor is about to close a file that 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

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 colors 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 each style setting.

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

Code Page Properties

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 might 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 cannot set a single byte character set.

Fonts with an "iso10646" registry must 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 might 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

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

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 define 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 are 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 Screen mode. 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 must expand if needed to accommodate larger line numbers, add a '+' after the number of digits,

FOR EXAMPLE,

   line.margin.width=3+

Selection Properties

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

Sets the colors used for displaying the 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

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 that might 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, for example, 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.

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

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

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

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

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

Sets the character to indicate control characters.

If not set, control characters are shown as mnemonics.

Error Marker Properties

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

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

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 by 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, 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

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

tabsize (MAXScript default: 8 Python default: 4)
tab.size.<filepattern> (MAXScript default: not set)
indent.size (MAXScript default: 8 Python default: 4)
indent.size.<filepattern> (MAXScript default: not set)
use.tabs (MAXScript default: 1 Python default: 0)
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.

Note: The Python-specific settings are specified in the python.properties file.

The indent size is the size to use when performing automatic indentation and might be different from the tab size. Mostly, a tab size of 8 but 4 character indentation is used.

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 might 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

find.mark (MAXScript default: not set)

If set, the Mark All command in the Find dialog will draw translucent boxes over each string that is 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 the Replace in Buffers command and Search only in this style checkbox.

If enabled, searches can be restricted to a particular style (for example, 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" that 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" is pressed.

Comment Properties

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 might 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

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

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, the output pane is to the right of the editing pane. If set to 0, 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, 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

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 might be used in this text using the $() syntax.

Commonly used properties are: ReadOnly , EOLMode , BufferLength , NbOfLines (in buffer), SelLength (chars), and 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 might 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

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 displays 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.

Note: As of 3ds Max 2020.1 Update, when autocomplete.MAXScript.useautogeneratedapi=1 is set in the MAXScript.properties file, the API keyword list generated by 3ds Max on startup is also used along with any API files specified by this setting.

FOR EXAMPLE,

   api.*.c=w.api

can 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: 0)

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: 1)

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

autocomplete.<lexer>.ignorecase (MAXScript default: 1)
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: $(chars.alpha)$(chars.numeric)_#.)
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 that will have its signature displayed as a calltip.

The * form is used 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 might 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) will 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 is usually left brace for start, right brace for end, and comma or semicolon for separator.

For example, 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 might 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

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

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

Defines 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

wrap (MAXScript default: not set)

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

This option has a high performance cost that is proportional to the amount of text, so it must 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 start of wrapped lines to visual identify them.

Possible values are:

0 - do not display markers (default)

1 - display markers at end of wrapped lines

2 - display markers at start of wrapped lines

3 - display markers at start 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 indentation of continued wrapped lines to visually identify the wrapping.

Default is 0 (no indentation).

Note: If 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.

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

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 and 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..style (which defaults to 0) are candidates for brace match highlighting.

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 might 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

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, the current extension is replaced (LineMarker.html).

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

If it is 2, the final '.' is replaced by '_' and the export format extension is 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. For example, 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 will bloat SciTE. Wrapping Helvetica or Times adequately is not 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

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 might 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

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, and 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

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)"