# HG changeset patch # User Steve Losh # Date 1289604635 18000 # Node ID c4d3b450770725679dc2f8f1118562248b4c27eb # Parent e0f13b88e80e6e65d9e57ea9906b5792ef2c940b vim: better next mappings and slimv diff -r e0f13b88e80e -r c4d3b4507707 vim/.vimrc --- a/vim/.vimrc Fri Nov 12 16:34:45 2010 -0500 +++ b/vim/.vimrc Fri Nov 12 18:30:35 2010 -0500 @@ -281,156 +281,39 @@ let g:gundo_debug = 1 let g:gundo_preview_bottom = 1 -" Next -nnoremap cinb f(ci( -nnoremap canb f(ca( -nnoremap cinB f{ci{ -nnoremap canB f{ca{ -nnoremap cin( f(ci( -nnoremap can( f(ca( -nnoremap cin{ f{ci{ -nnoremap can{ f{ca{ -nnoremap cin) f(ci( -nnoremap can) f(ca( -nnoremap cin} f{ci{ -nnoremap can} f{ca{ -nnoremap cin[ f[ci[ -nnoremap can[ f[ca[ -nnoremap cin] f[ci[ -nnoremap can] f[ca[ -nnoremap cin< f f f f f inb :normal! f(vib +onoremap anb :normal! f(vab +onoremap in( :normal! f(vi( +onoremap an( :normal! f(va( + +" Next {} +onoremap inB :normal! f{viB +onoremap anB :normal! f{vaB +onoremap in{ :normal! f{vi{ +onoremap an{ :normal! f{va{ -nnoremap yinb f(yi( -nnoremap yanb f(ya( -nnoremap yinB f{yi{ -nnoremap yanB f{ya{ -nnoremap yin( f(yi( -nnoremap yan( f(ya( -nnoremap yin{ f{yi{ -nnoremap yan{ f{ya{ -nnoremap yin) f(yi( -nnoremap yan) f(ya( -nnoremap yin} f{yi{ -nnoremap yan} f{ya{ -nnoremap yin[ f[yi[ -nnoremap yan[ f[ya[ -nnoremap yin] f[yi[ -nnoremap yan] f[ya[ -nnoremap yin< f f f F F ind :normal! f[vi[ +onoremap and :normal! f[va[ +onoremap in[ :normal! f[vi[ +onoremap an[ :normal! f[va[ -nnoremap diNb F(di( -nnoremap daNb F(da( -nnoremap diNB F{di{ -nnoremap daNB F{da{ -nnoremap diN( F(di( -nnoremap daN( F(da( -nnoremap diN{ F{di{ -nnoremap daN{ F{da{ -nnoremap diN) F(di( -nnoremap daN) F(da( -nnoremap diN} F{di{ -nnoremap daN} F{da{ -nnoremap diN[ F[di[ -nnoremap daN[ F[da[ -nnoremap diN] F[di[ -nnoremap daN] F[da[ -nnoremap diN< F F F +onoremap in< :normal! f +onoremap an< :normal! f -nnoremap yiNb F(yi( -nnoremap yaNb F(ya( -nnoremap yiNB F{yi{ -nnoremap yaNB F{ya{ -nnoremap yiN( F(yi( -nnoremap yaN( F(ya( -nnoremap yiN{ F{yi{ -nnoremap yaN{ F{ya{ -nnoremap yiN) F(yi( -nnoremap yaN) F(ya( -nnoremap yiN} F{yi{ -nnoremap yaN} F{ya{ -nnoremap yiN[ F[yi[ -nnoremap yaN[ F[ya[ -nnoremap yiN] F[yi[ -nnoremap yaN] F[ya[ -nnoremap yiN< F F F in' :normal! f'vi' +onoremap an' :normal! f'va' + +" Next "" +onoremap in" :normal! f"vi" +onoremap an" :normal! f"va" " VimClojure let vimclojure#HighlightBuiltins=1 diff -r e0f13b88e80e -r c4d3b4507707 vim/bundle/slimv/doc/slimv.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vim/bundle/slimv/doc/slimv.txt Fri Nov 12 18:30:35 2010 -0500 @@ -0,0 +1,1508 @@ +*slimv.txt* Slimv Last Change: 07 Nov 2010 + +Slimv *slimv* + Version 0.7.1 + +The Superior Lisp Interaction Mode for Vim. +This plugin is aimed to help Lisp development by interfacing between Vim and +the Lisp REPL, similarly to Emacs/SLIME. +Slimv works on Windows, Linux, and Mac OS X, however the newly introduced +paredit mode is operating system independent. + +|slimv-installation| Installation +|slimv-customization| Customization +|slimv-usage| Usage +|slimv-repl| Lisp REPL inside Vim +|slimv-clojure| Clojure support +|slimv-package| Package and Namespace handling +|slimv-profiling| Profiling +|slimv-hyperspec| Hyperspec Lookup and Completion +|slimv-paredit| Paredit mode +|slimv-external| External utilities +|slimv-faq| Frequently Asked Questions +|slimv-changelog| Change Log +|slimv-issues| Known Issues +|slimv-todo| Todo +|slimv-credits| Credits + +For Vim version 7.0 and above. +This plugin is only available if 'compatible' is not set. + +{Vi does not have any of this} + +=============================================================================== +INSTALLATION *slimv-installation* + +Prerequisites: + + Required components: + - Lisp (any console Common Lisp implementation should be OK) or + Clojure installed. + - Python 2.4 or later installed. + + Optional components: + - The interrupt functionality needs the pywin32 extension on Windows. + - "Exuberant ctags" for tags file generation (if not bundled with Vim + already). See |slimv-ctags|. + +To install the script: + + - Download the slimv.zip. + - Extract the zip archive into your vimfiles or runtime directory. + See Vim help file |usr_05.txt| for details on adding a plugin. + The archive contains the following files: + + doc/slimv.txt + ftdetect/clojure.vim + ftplugin/metering.lisp + ftplugin/slimv.py + ftplugin/slimv.vim + ftplugin/slimv-clhs.vim + ftplugin/slimv-cljapi.vim + ftplugin/slimv-javadoc.vim + ftplugin/clojure/slimv-clojure.vim + ftplugin/lisp/slimv-lisp.vim + indent/clojure.vim + plugin/paredit.vim + syntax/clojure/slimv-syntax-clojure.vim + + You might already have an ftdetect/clojure.vim file if you already use + another Clojure filetype plugin. In this case just keep the original file. + If you intend to use the script only for Lisp programming, then most of + the files may be skipped, in this case it is enough to copy the following + files: + + doc/slimv.txt + ftplugin/metering.lisp + ftplugin/slimv.py + ftplugin/slimv.vim + ftplugin/slimv-clhs.vim + ftplugin/lisp/slimv-lisp.vim + + - Start Vim or goto an existing instance of Vim. + - Execute the following command: +> + :helptags /doc + + (e.g :helptags $VIMRUNTIME/doc) +< + This will generate all the help tags for any file located in the doc + directory. + - Enter path definitions into your vimrc (if the default values are not + valid for your Vim/Python/Lisp installation, which is highly probable). + See |slimv-customization| below on how to do this. + - On Linux some login shells (like fish) might be incompatible with the Vim + temporary file generation, which results in getting random E484 errors. + This is because Vim expects a POSIX-compliant shell and the problem might + occur in other Vim scripts as well. + One solution is to add a similar block to the top of .vimrc: + + if $SHELL =~ 'bin/fish' + set shell=/bin/sh + endif + + +Upgrade from previous script versions: + +0.1 - 0.4.x The project went through a major reorganization, so users + who already installed previous versions of the plugin should + first delete the old files. These are: plugin/slimv.vim, + plugin/slimv.py, plugin/metering.lisp and doc/slimv.txt + in the vimfiles directory. +0.1 - 0.2.x Users having a custom |g:slimv_repl_file| setting should + consider attaching the .lisp or .clj extension to the name + of the REPL buffer, in order to have syntax highlighting + and autoindenting in the REPL buffer. + Users who already have done this are smarter than me :) + +Uninstallation: + + - Exit all Vim instances and exit from the REPL server terminal window. + - Delete the files that were copied to the vimfiles directory during + installation: + + doc/slimv.txt + ftdetect/clojure.vim + ftplugin/metering.* + ftplugin/slimv.py + ftplugin/slimv.vim + ftplugin/slimv-clhs.vim + ftplugin/slimv-cljapi.vim + ftplugin/slimv-javadoc.vim + ftplugin/clojure/slimv-clojure.vim + ftplugin/lisp/slimv-lisp.vim + indent/clojure.vim + plugin/paredit.vim + syntax/clojure/slimv-syntax-clojure.vim + + (Special note on metering.lisp: if the profiler was compiled, then the + compiled files should be deleted as well, hence the metering.* above.) + + +=============================================================================== +CUSTOMIZATION *slimv-customization* + +|slimv-options| Options +|slimv-templates| Templates +|slimv-keyboard| Keyboard mappings + +------------------------------------------------------------------------------- + *slimv_options* + +The list below contains an alphabetical collection of Slimv options. +Below that list follows the detailed explanation on each option. + +|g:paredit_matchlines| Number of lines to look backward and forward + when checking if the current form is balanced. + +|g:paredit_mode| If nonzero, paredit mode is switched on. + +|g:paredit_shortmaps| If nonzero, paredit is remapping some one-letter + Vim commands that are not frequently used. + +|g:slimv_browser_cmd| If nonempty, this command is used to open the + Common Lisp Hyperspec. + +|g:slimv_clhs_root| Base URL for the Common Lisp Hyperspec. + +|g:slimv_clhs_user_db| User defined extension for Slimv's built-in + Common Lisp Hyperspec symbol database. + +|g:slimv_clhs_user_root| Base URL for the user defined CLHS extension. + +|g:slimv_cljapi_root| Base URL for the Clojure API. + +|g:slimv_cljapi_user_db| User defined extension for Slimv's built-in + Clojure API symbol database. + +|g:slimv_cljapi_user_root| Base URL for the user defined Clojure API + extension. + +|g:slimv_client| The whole OS command to start the Slimv client. + Used for advanced customization, like changing + the terminal emulator to use for the Lisp REPL. + +|g:slimv_ctags| OS command to generate tags file. + +|g:slimv_debug_client| Display the command to start client. + +|g:slimv_impl| The Lisp implementation. Defaults to 'clisp'. + +|g:slimv_javadoc_root| Base URL for the JavaDoc. + +|g:slimv_keybindings| Predefined Slimv keybindings. Possible values: + 1 = set #1, 2 = set #2, other = no keybindings + +|g:slimv_lisp| Path for the Lisp interpreter. + +|g:slimv_menu| If nonzero, Slimv menu is added to the Vim menu. + +|g:slimv_package| If nonzero, Slimv package/namespace handling is + switched on. + +|g:slimv_port| TCP/IP port number to use in the Slimv client- + server communication. + +|g:slimv_python| Path for the Python interpreter. + +|g:slimv_repl_dir| Directory path for the Lisp REPL buffer file. + +|g:slimv_repl_file| Filename without path for the REPL buffer file. + +|g:slimv_repl_open| If nonzero, Slimv opens the Lisp REPL buffer + inside Vim when the server is started. + +|g:slimv_repl_split| Open the Lisp REPL buffer in a split window + or in a separate buffer. + +|g:slimv_repl_wrap| Set wrap mode for the REPL buffer. + +|g:slimv_updatetime| Alternative value for 'updatetime' during REPL + refresh. + + +Note: Most options require to restart the Vim session when modified. + +Slimv tries to autodetect the Python and Lisp installation directories, +however the algorithm is not very sophisticated. +If the installation directories are put in the path, then the autodetection +should find them (this is usually the case on Linux). Otherwise (on Windows) +some frequently used directories are searched under C:\ and C:\Program Files. +For a minimum, Slimv needs to know the path of the existing Python and Lisp +installations, so if autodetection does not work for you, then set the +following global variables in your vimrc. + +Note: On Windows use the / (slash) character instead of \ (backslash) as the + directory separator to avoid any incidental character escaping problems + while the paths are beeing passed between the Slimv processes. + On Linux this is not an issue. + + *g:slimv_python* +This is the installation path of the Python interpreter. +Example: + let g:slimv_python = 'C:/MyPythonDir/python.exe' + + *g:slimv_lisp* +This is the installation path of the Lisp interpreter. +Example: + let g:slimv_lisp = 'C:/MyLispDir/mylisp.exe' + + *g:slimv_impl* +This is the Lisp implementation used. Slimv tries to autodetect it at script +startup. If the autodetection fails, set this to the actual Lisp +implementation. +Example: + let g:slimv_impl = 'sbcl' + + *g:slimv_port* +The default port used by Slimv is 5151. If this port is used by another +program then set this variable to a free port number. +It is also possible to run multiple REPLs from multiple Vim processes, just +set a different port number for each Vim instance. +Example: + let g:slimv_port = 10101 + + *g:slimv_client* +You may want to use a shell frontend other then the default one (cmd.exe +on Windows, xterm on Linux) or put additional command line parameters +for starting the server. +In this case you can omit the variables above and use g:slimv_client instead. +This is the complete command that is used to start the client. If not set +by the user, this is automatically built from the variables above. + +The command format is the following (items in [] are optional): + [-p ] -r "" +Where: + is the command to start the Python interpreter + is the path of slimv.py + is the port number to use (if other than default) + is the command to start the server + +The format of is the following (please remember to enclose the +whole command in double quotes, as this will be passed as one parameter +to the client): + [] -l -s +Where: + is the command to open a new terminal window + is the command to start the Python interpreter + is the path of slimv.py + is the command to start the Lisp REPL +You can also pass the following shortcuts in : + @p equals + @s equals + @@ use it if you need to insert an @ character + \" use it to insert a " character +So can be rewritten in this shorter form: + [] @p @s -l -s + +The reason behind the duplication of the and part is that +you may want to start the server/REPL in a shell frontend that needs +special command line options. For example on Windows I highly recommend +to use Console (http://sourceforge.net/projects/console/) which is greatly +configurable and you also get usable select/copy/paste functions. + +Note: Remember to escape with a \ all " characters that are supposed to be + inside a command line argument, otherwise the argument will be split + by the shell. + +Example to start the Slimv server via Console on Windows: + + let g:slimv_client = + \ 'python slimv.py -p 5152 -r "console -r \"/k @p @s -l clisp -s\""' + +So the server will be started as if we typed at the command line: + + console -r "/k python slimv.py -l clisp -s" + +A similar situation is if you want to use a terminal program other than +xterm on Linux (e.g. Konsole). A typical g:slimv_client setup can be on +Linux for xterm: + + let g:slimv_client = + \ 'python ~/.vim/plugin/slimv.py -r "xterm -T Slimv -e @p @s -l clisp -s"' + +And this can be for Konsole: + + let g:slimv_client = + \ 'python ~/.vim/plugin/slimv.py -r "konsole -T Slimv -e @p @s -l clisp -s"' + + *g:slimv_debug_client* +Set this to nonzero if you want to make Vim display the command used to start +the client and any occurrent error messages. This also makes Slimv keep the +Slimv client window open on Windows. This setting is useful to debug problems +when setting up a custom |g:slimv_client| command. + + *g:slimv_ctags* +It is possible to generate tags file from within Vim. By default Slimv assumes +that ctags.exe is stored somewhere along with the standard Vim path designated +by $vim or $vimruntime. The command for generating tags file is then +automatically built at script startup. +If ctags.exe is stored somewhere else, or the default ctags options are +unsatisfactory, then override this option with the desired command. +The default ctags command is: + "ctags.exe -a --language-force=lisp *.lisp *.clj" + + *g:slimv_keybindings* +Defines the keybinding set used by Slimv. Value 0 means no keybinding at all. +Value 1 defines the short keybinding with one-key bindings (after ). +Value 2 defines the easy keybinding with two-key bindings (after ). +Other values mean no predefined keybinding is wanted. +The is set to ',' by default. + + *g:slimv_menu* +If nonzero then the Slimv menu is added to the end of the global menu. +Also the Slimv menu can be shown by pressing , (defaults to ,,). + + *g:paredit_matchlines* +Number of lines to look backward and forward when checking if the current +top level form is balanced in paredit mode. Default is 100. + + *g:paredit_mode* +If nonzero then paredit mode is switched on, i.e. Slimv tries to keep the +balanced state of parens. See |g:slimv-paredit|. + + *g:paredit_shortmaps* +If nonzero, paredit is remapping some one-letter normal mode Vim commands that +are not frequently used. These are <, >, J, O, W, S. The original function of +these maps then can be reached via the prefix (which is the "," +character by default in Slimv). +Otherwise these paredit functions can be reached via the prefix. + + *g:slimv_browser_cmd* +Specifies the command to start the browser in order to display the Common Lisp +Hyperspec or the Clojure API. If the command contains spaces then enclose the +whole string in double quotes or escape the spaces with a backslash. +This option is empty by default, which means that the command associated with +the .html extension (on Windows) or returned by the Python webbrowser package +(on Linux) is used to start the browser. + + *g:slimv_repl_dir* +Directory path for the Lisp REPL buffer file. By default this is a directory +for temporary files, something like /tmp/ on Linux or +"C:\Documents and Settings\Username\Local Settings\Temp\" on Windows. +The directory name must end with the pathname separator (/ or \). +See also |g:slimv_repl_file|. + + *g:slimv_repl_file* +The Lisp REPL output is written to a temporary file by the Slimv server. +|g:slimv_repl_file| defines the filename part of the REPL output file without +the directory path. The complete REPL filename is built from +|g:slimv_repl_dir| and |g:slimv_repl_file|. + + *g:slimv_repl_open* +Slimv opens the Lisp REPL buffer inside Vim by default when the Slimv server +is started, so there exist actually two REPL-s with the same contents: +one inside a Vim buffer and another one as a separate terminal window. +The reason behind this is that the simulation is not perfect, which is caused +by the lack of asynchronous update possibilities in Vim. Sometimes the REPL +buffer is not perfectly updated, this is the case for example when a Lisp +program is running too long and it has infrequent outputs only. +Slimv refreshes the REPL buffer at every keystroke or when the user doesn't +press a key for the time specified with 'updatetime'. It is also possible +to manually refresh the REPL buffer. The default value for 'updatetime' is +4 secs (=4000 ms), in cases when more precise refreshing is needed you can +lower the 'updatetime' option, e.g. to one second (=1000 ms): + set updatetime=1000 +However, it is not recommended to set this to a much lower value. +Optionally one may check the output of the separate REPL window. +The |g:slimv_repl_open| = 0 option can be used to disable the built-in REPL +buffer, so that only the separate REPL window is opened. + + *g:slimv_repl_split* +Open the Lisp REPL buffer in a split window or in a separate buffer in Vim. +Used only when |g:slimv_repl_open| is nonzero. + + *g:slimv_updatetime* +The REPL buffer is refreshed at every keystroke or when the user doesn't press +a key for the time specified with 'updatetime'. Slimv alters the value for +'updatetime' to a lower value when the REPL buffer is changed, so that the +update frequency gets higher while there is new REPL output. The original +value for 'updatetime' is restored when there is no REPL output. +The g:slimv_updatetime option defines the alternative (lower) value for +'updatetime' during REPL refresh. If you don't want that Slimv changes +'updatetime', then set g:slimv_updatetime to zero. +The default value is 200 (=0.2 sec). + + *g:slimv_package* +If nonzero then Slimv package/namespace handling is switched on. Please find +details in the |slimv-package| section. + + *g:slimv_repl_wrap* +Set wrap mode for the REPL buffer, which means the lines longer than the +window width will not be hidden to the right. Instead they will be continued +in the next display line. +This is the default behaviour as it is how regular REPL windows work. This +mode also enables keybindings for cursor movements, so that an keypress +will move the cursor one line on the display and not one line in the document. + + + *g:slimv_clhs_root* + *g:slimv_cljapi_root* + *g:slimv_javadoc_root* +Base URL for the Common Lisp Hyperspec, Clojure API, and JavaDoc. +If the Hyperspec/API is downloaded to the hard disk, then set these variables +to the base path of the local copy, something like (where file:// specifies +the file protocol): +"file:///c:/doc/HyperSpec/" (Windows). +or +"file:///usr/local/doc/HyperSpec/" (Linux). +It is possible to extend the Hyperspec symbol database with user defined +symbols, see |g:slimv_clhs_user_db| and |g:slimv_cljapi_user_db|. + + *g:slimv_clhs_user_db* + *g:slimv_cljapi_user_db* + *g:slimv_clhs_user_root* + *g:slimv_cljapi_user_root* +If you want to extend Slimv's built-in Hyperspec/API symbol database, define +the list of additional symbols in these variables. The format of this list is +the following: [["symbol1", "url1"], ["symbol2", "url2"], ...]. +If the URL contains a ":" character then it is considered to be a fully +qualified URL, otherwise it is a relative address to the Hyperspec root +defined in |g:slimv_clhs_root| or |g:slimv_cljapi_root|. +It is also possible to define a separate base URL for the user extensions via +|g:slimv_clhs_user_root| or |g:slimv_cljapi_user_root|. + +Example: + let g:slimv_clhs_user_root = "http://myhyperspec.com/" + let g:slimv_clhs_user_db = [ + \["my-cool-function", "mycoolfunc.htm"], + \["my-super-function", "mysuperfunc.htm"], + \["my-awesome-function", "myawesomefunc.htm"]] + +Remember to insert a backslash at the beginning of each additional line of a +multi-line Vim command. + + +------------------------------------------------------------------------------- + *slimv_templates* + +Many Slimv commands are performed by creating a special Lisp form from the +selected symbol (or list) and send it to the REPL for execution. +Slimv defines various templates to build these special Lisp forms. +You can override them to suit your needs. Use %1 for substituting the selected +symbol's name or the selected list. +Here follows a list of the templates defined in Slimv. + + *g:slimv_template_pprint* +Lisp form built when issuing the 'Pprint' command. +Example: + let g:slimv_template_pprint = '(dolist (o %1)(pprint o))' + + *g:slimv_template_undefine* +Lisp form built when issuing the 'Undefine' command. +Example: + let g:slimv_template_undefine = '(fmakunbound (read-from-string "%1"))' + + *g:slimv_template_describe* +Lisp form built when issuing the 'Describe' command. +Example: + let g:slimv_template_describe = '(describe (read-from-string "%1"))' + + *g:slimv_template_trace* +Lisp form built when issuing the 'Trace' command. +Example: + let g:slimv_template_trace = "(trace %1)" + + *g:slimv_template_untrace* +Lisp form built when issuing the 'Untrace' command. +Example: + let g:slimv_template_untrace = "(untrace %1)" + + *g:slimv_template_profile* +Lisp form built when issuing the 'Profile' command. +Example: + let g:slimv_template_profile = "(mon:monitor %1)" + + *g:slimv_template_unprofile* +Lisp form built when issuing the 'Unprofile' command. +Example: + let g:slimv_template_unprofile = "(mon:unmonitor %1)" + + *g:slimv_template_unprofile_all* +Lisp form built when issuing the 'Unprofile All' command. +Example: + let g:slimv_template_unprofile_all = "(mon:unmonitor)" + + *g:slimv_template_show_profiled* +Lisp form built when issuing the 'Show Profiled' command. +Example: + let g:slimv_template_show_profiled = "(pprint mon:*monitored-functions*)" + + *g:slimv_template_profile_report* +Lisp form built when issuing the 'Profile Report' command. +Example: + let g:slimv_template_profile_report = "(mon:report-monitoring)" + + *g:slimv_template_profile_reset* +Lisp form built when issuing the 'Profile Reset' command. +Example: + let g:slimv_template_profile_reset = "(mon:reset-all-monitoring)" + + *g:slimv_template_disassemble* +Lisp form built when issuing the 'disassemble' command. +Example: + let g:slimv_template_disassemble = "(disassemble #'%1)" + + *g:slimv_template_inspect* +Lisp form built when issuing the 'inspect' command. +Example: + let g:slimv_template_inspect = "(inspect %1)" + + *g:slimv_template_apropos* +Lisp form built when issuing the 'apropos' command. +Example: + let g:slimv_template_apropos = '(apropos "%1")' + + *g:slimv_template_macroexpand* +Lisp form built when issuing the 'macroexpand-1' command, after "defmacro" +string is replaced with "macroexpand-1". +Example: + let g:slimv_template_macroexpand = '(pprint %1)' + + *g:slimv_template_macroexpand_all* +Lisp form built when issuing the 'macroexpand-all' command, after "defmacro" +string is replaced with "macroexpand". +Example: + let g:slimv_template_macroexpand_all = '(pprint %1)' + + *g:slimv_template_compile_file* +Lisp form built when issuing the 'compile-file' command. +Example: + let g:slimv_template_compile_file = '(compile-file "%1")' + + +------------------------------------------------------------------------------- + *slimv_keyboard* + +The default keybindings (|g:slimv_keybindings|=1) and another easy to remember +built in keybinding set (|g:slimv_keybindings|=2) for Slimv are the following. +Please note that the leading ',' key below refers to , which is set +by Slimv to ',' by default. +Vim defines timeout values for mapped key sequences. If you find that Vim does +not allow you enough time between pressing ',' and the last key(s) of the +sequence, then you may want to fine tune these Vim options: +|timeout|, |ttimeout|, |timeoutlen|, |ttimeoutlen|. + + Set#1 Set#2 Command + --------------------------------------------------- + ,, ,, Slimv Menu + + Edit commands: + 0 Close-Form (Insert mode) + Complete-Symbol (Insert mode) + ,( ,(t Paredit Toggle + + Evaluation commands: + ,d ,ed Eval Defun (current top level form) + ,e ,ee Eval Last Expression (current subform) + ,E ,ep Pprint Eval Last Expression + ,r ,er Eval Region (visual selection) + ,b ,eb Eval Buffer + ,v ,ei Interactive Eval + ,u ,eu Undefine Function + + Debug commands: + ,1 ,m1 Macroexpand-1 + ,m ,ma Macroexpand + ,t ,dt Trace + ,T ,du Untrace + ,l ,dd Disassemble + ,i ,di Inspect + + Compile commands: + ,D ,cd Compile Defun + ,L ,cl Compile and Load File + ,F ,cf Compile File + ,R ,cr Compile Region + + Profile commands: + ,O ,pl Load Profiler + ,p ,pp Profile + ,P ,pu Unprofile + ,U ,pa Unprofile All + ,? ,ps Show Profiled + ,o ,pr Profile Report + ,x ,px Profile Reset + + Documentation commands: + ,s ,ds Describe Symbol + ,a ,da Apropos + ,h ,dh Hyperspec + ,] ,dt Generate Tags + + Repl commands: + ,c ,rc Connect to Server + + + Set#1 Set#2 Command + --------------------------------------------------- + ,\ ,\ REPL Menu (separate menu, valid only for the REPL buffer) + + REPL menu commands: + ,. ,rs Send Input + ,/ ,ro Close and Send Input + Interrupt Lisp Process + , ,rp Previous Input + , ,rn Next Input + ,z ,rr Refresh REPL Buffer + + +Also see |slimv-repl| for additional keybindings valid only in the REPL buffer. + + +=============================================================================== +USAGE *slimv-usage* + +After proper installation start Vim and load a *.lisp source file into a +buffer. When the first Slimv command is entered (either from the menu or +via keyboard shortcut or entering a :call Slimv...() at the Vim command line) +then Slimv checks if the server/REPL runs and starts it if nedeed. +When the server is running, the Slimv commands send the appropriate Lisp +forms to the server/REPL for processing. That's it. + +All you need to know then is the list of possible Slimv commands, how to +enter them and under what conditions. + +It is possible to interrupt a running Lisp program by pressing Ctrl-C, +at least in some Lisp implementations, like CLISP (does not work for example +with SBCL). +In Clojure Ctrl-C exits the REPL by default, but it is possible to change this +behaviour via the add-break-thread! function: + user=> (use 'clojure.contrib.repl-utils) + nil + user=> (add-break-thread!) +Then pressing Ctrl-C results in a SIGINT exception in the current thread. +This may however make bad things to your JVM, so use it with caution. + +To end the Lisp session press EOF (Ctrl-D on Linux, Ctrl-Z on Windows) +in the Lisp REPL window. After exiting the REPL it is possible to open +a new one from Vim the same way as before. + + +=============================================================================== +LISP REPL *slimv-repl* + +The Lisp REPL is displayed as a separate terminal window and also inside a +Vim buffer. The Lisp REPL buffer is opened when the Slimv server is started. +The REPL buffer is a more or less regular Vim buffer, all Vim keybindings and +commands can be used here as well. + +There are however some subtle differences. The main idea is that the last line +in the REPL buffer is a "command line", just like in any REPL. The command +line usually begins with a prompt, something like "[1] > ". The user types the +command after the prompt in Insert mode. When Enter () is pressed, the +contents of the command line (which can actually be multiple lines, when +pasted) is sent to the Lisp REPL for evaluation. It is not allowed to +backspace before the end of the command line prompt. +Please remember that this evaluation style is working only in Insert mode, +in Normal mode the function of is left unchanged. +Other areas of the REPL buffer can be used to eval Lisp forms, just like +from the .lisp source code. So it is possible to move the cursor inside a form +that was previously eval-ed, make some changes, then eval it again. +Please note, that after evaluation the REPL buffer is refreshed, so the +changes made to the form are restored at that location, but the changed form +will be evaluated at the end of the REPL buffer. + +Another difference is the command line history, which can be activated by +pressing or in the command line (also only in Insert mode). +Outside of the command line the and keys move the cursor, +as usual. + +The keys with modified meanings in the Lisp REPL buffer are listed below: + +Insert Mode: + + Sends the command typed in the last line to the Lisp REPL + for evaluation. + + Adds missing closing parentheses at the end of the command, + then sends the command to the Lisp REPL for evaluation. + + In the last line it deletes characters to the left only + until the end of the Lisp prompt reached. + + Brings up the previous command typed and sent to the Lisp + REPL when in the command line. + + Brings up the next command typed and sent to the Lisp REPL + when in the command line. + + +=============================================================================== +CLOJURE SUPPORT *slimv-clojure* + +Vim has a built-in support for Lisp, however it has no Clojure support by +default. As Clojure is a Lisp dialect, Slimv simply reuses Vim's Lisp syntax +and indent plugins for Clojure. It this does not suit your needs, then it is +possible to download and install a separate Clojure plugin parallel to Slimv. + +In order to launch the Clojure REPL the variable |g:slimv_lisp| must be +properly set up. +The simplest definition is something like this, which assumes that the +directory for clojure.jar is in the PATH. Please note that the whole expression +needs to be enclosed in double quotes, as it will be passed to the server in +one single command line argument: + + let g:slimv_lisp = '"java -cp clojure.jar;clojure-contrib.jar clojure.main"' + +Here follows an example, which starts c:\Clojure\clojure.jar on Windows. +Remember to escape the backslashes: + + let g:slimv_lisp = + \ '"java -cp c:\\Clojure\\clojure.jar;c:\\Clojure\\clojure-contrib.jar clojure.main"' + + +=============================================================================== +PACKAGE AND NAMESPACE HANDLING *slimv-package* + +Slimv has a basic support for handling Lisp packages and Clojure namespaces. +This means that at every form evaluation Slimv first searches the source file +for any preceding '(in-package ...)' form for Lisp and '(in-ns ...)' form for +Clojure. If found then each time the package/namespace definition is evaluated +first. This way it is possible to randomly re-evaluate forms in a source (or +multiple sources) that use multiple packages/namespaces, each time the correct +package/namespace will be used. +The package/namespace handling can be switched off via the |g:slimv_package| +option. + + +=============================================================================== +PROFILING *slimv-profiling* + +Slimv is capable of utilizing SBCL's built-in profiler, and also the same +monitoring/profiling package (metering.lisp) that is used by SLIME, at least +for CLISP and maybe for some other Common Lisp implementations. +Fortunately SLIME's metering.lisp is in public domain, so its current version +(at the time of writing this document) is included in Slimv. +The most recent version can be extracted from the main directory of SLIME. +SLIME can be downloaded from http://common-lisp.net/project/slime/ + +SBCL's profiler is ready to use by just starting the Lisp REPL. +In order to use SLIME's profiler with CLISP it first must be compiled and +loaded into a running REPL. Perform this with the 'Load-Profiler' command. +If the compilation was successful then Slimv is ready to profile. + +Use the 'Profile' command to select functions for profiling, 'Unprofile' to +deselect specific functions or 'Unprofile All' to deselect all functions. +Obtain a list of profiled functions with 'Show Profiled'. +use 'Profile-Report' to display profiling results. +Reset profiling counters with 'Profile-Reset'. + +When the REPL is restarted, the profiler needs to be reloaded (only in case +of CLISP): select the 'Load-Profiler' command again (this re-compiles +metering.lisp). + +It is possible to override the default profile commands via the following +templates (see |slimv_templates|): + + |g:slimv_template_profile| + |g:slimv_template_unprofile| + |g:slimv_template_unprofile_all| + |g:slimv_template_show_profiled| + |g:slimv_template_profile_report| + |g:slimv_template_profile_reset| + + +=============================================================================== +HYPERSPEC AND COMPLETION *slimv-hyperspec* + +Slimv contains Common Lisp Hyperspec, Clojure API and JavaDoc symbol databases. +When you are looking for the definition of a symbol, just place the cursor on +the symbol and select the 'Hyperspec' function. If the symbol is found in the +symbol database then the corresponding web page is displayed in the default +browser. It is also possible to select this function having just the beginning +of the symbol name, then the first match is presented to the user, and he/she +is asked to confirm or edit the symbol name before the hyperspec lookup. + +It is possible to use a local copy of the Hyperspec, for this you need to +define its base URL. See |g:slimv_clhs_root|, |g:slimv_cljapi_root| and +|g:slimv_javadoc_root| for details. + +It is also possible to add user defined symbols to the Hyperspec database, +see |g:slimv_clhs_user_db| and |g:slimv_cljapi_user_db|. + + +Slimv uses the Hyperspec symbol database for symbol name completion, via +Vim's omni-completion feature (if it is enabled and 'omnifunc' is not +defined already to something else). +Start to enter the symbol in Insert mode, then at some point press the + (omni-complete) key combination or select the 'Complete Symbol' +function. The first match in the symbol database is inserted at the cursor +position and a list of matching symbols is displayed in a submenu. +Use to select the next match, to select the previous match. + +See Vim help file |insert.txt| for details on the usage of the various +completion functions built in Vim. + + +=============================================================================== +PAREDIT MODE *paredit* *slimv-paredit* + +Paredit mode is a special editing mode that keeps all matched characters +(parentheses, square brackets, double quotes) balanced, i.e. all opening +characters have a matching closing character. Most text entering and erasing +commands try to maintain the balanced state, so no single matched character is +added or deleted, they are entered or removed in pairs. +The function takes care of strings and comments, so no parenthesis and square +bracket balancing is performed inside a string or comment. + +The idea is taken from the paredit mode of Emacs, but not all paredit.el +editing functions are implemented or behave exactly the same way as they do +in Emacs. + +When you enter a '(' then a matching ')' is automatically inserted. +If needed, spaces before and/or after the '()' pair are added. + +When you press ')' in insert mode then there's no need to insert a closing +parenthesis mark (it is already there), so the cursor is simply advanced past +the next closing parenthesis (then the next outer closing parenthesis, etc.). +The result of this is however that when entering text with paredit mode +you can use the same keystrokes as without paredit mode and you get the same +result. Of course you can choose to not enter the closing parenthesis (as +required without paredit mode), because it is already there. + +When you are trying to delete a ')' alone then it is not possible, the cursor +is simply moved inside the list, where all regular characters can be deleted. +When the list is finally empty: '()', then the deletion of the opening '(' +makes both parentheses erased at once, so the balanced state is maintained. + +All the above holds for [...] and "..." character pairs. + +When you are deleting multiple characters at once, e.g. deleting a whole line, +or deleting till the end of the line, etc, then the deletion logic of a single +character is iterated. This means that the whole line or the characters till +the end of the line, etc are not necessarily deleted all. Depending on the +number of open/close parentheses, square brackets, double quotes some of them +might be kept in order to maintain the balanced state. +For example if you press D in Normal mode to delete till the end of line +between the a and b parameters of the following Clojure function definition: + +(defn myfunc [a b c] (+ a b c)) + ^--- press D here + +then the closing ] as well as the last closing ) will not be deleted, because +in the list you have an ( and a [ to be matched, so the result will be: + +(defn myfunc [a]) + +If you are deleting multiple lines, then the above process is performed for +all lines involved. If a line was not completely cleared, then it is joined +with the next line and the process continues. + + +Of course not all Vim commands are compatible with the paredit mode (e.g. +you can yank and paste unbalanced code snippet, or comment out an asymmetrical +part of the code), and there is also the possibility to edit the source code +with paredit mode switched off or with another editor to make it unbalanced. +When paredit mode detects that the underlying code is not balanced, then the +paredit functionality is suspended until the top level form balance is fixed. +As soon as all parens are matched, the paredit mode is automatically resumed. +Paredit needs "syntax on" to identify the syntax elements of the underlying +code, so if syntax is switched off, then paredit will not be suspended inside +comments or strings. + + +Slurpage and Barfage known from Emacs is also possible but in a different +fashion: you don't move the symbols but move the opening or closing parenthesis +over the symbol or a sub-list. This way you can move any symbol or sub-list +into or out of the current list. It is not possible to move the parenthesis +over its pair, so for example if you move the opening parenthesis to the right, +then it will stop at the matched closing parenthesis. + + +Paredit mode is set by default for .lisp and .clj files, but it is possible +to switch it out by putting the following statement in the .vimrc file: + + let g:paredit_mode = 0 + +You can enable paredit mode for other file types as well. Here is how to set +it for Scheme files (meant to be added to your .vimrc file): + + au BufNewFile,BufRead *.scm call PareditInitBuffer() + +It is also possible to use the paredit mode alone, without the other parts of +Slimv. The easiest way to do it is to delete all Slimv related files from the +ftplugin directory. If you don't intend to use Slimv's indentation and syntax +files, then you need to keep only plugin/paredit.vim. +Another way to prevent Slimv from loading by adding this to your .vimrc file: + + let g:slimv_loaded = 1 + +Slimv core will not be loaded but paredit will be loaded and assigned to +.lisp and .clj files. + + +Here follows a list of paredit keybindings: + + +Insert Mode: + + ( Inserts '()' and moves the cursor inside. Also adds leading + or trailing spaces when needed. + Inserts '(' when inside comment or string. + + ) Moves the cursor to the next closing parenthesis mark of + the current list. When pressed again then moves to the next + outer closing parenthesis, etc, until the closing of the + top level form is reached. + Inserts ')' when inside comment or string. + + [ Inserts '[]' and moves the cursor inside. Also adds leading + or trailing spaces when needed. + Inserts '[' when inside comment or string. + + ] Moves the cursor to the next closing square bracket of the + current list. When pressed again then moves to the next + outer closing square bracket, etc, until the closing of the + top level form is reached. + Inserts ']' when inside comment or string. + + " When outside of string, inserts '""' and moves the cursor + inside. When inside string then moves to the closing '"'. + Inserts '"' when inside comment. Also insert '"' when inside + string and preceded by a '\'. + + When about to delete a (, ), [, ], or " and there are other + characters inside, then just skip it to the left. When + about to delete the opening part of the matched character + with nothing inside, then the whole empty list is removed. + + When about to delete a (, ), [, ], or " and there are other + characters inside, then just skip it to the right. When + about to delete the closing part of the matched character + with nothing inside, then the whole empty list is removed. + + +Normal Mode: + + ( Finds opening '(' of the current list. Can be pressed + repeatedly until the opening of the top level form reached. + + ) Finds closing ')' of the current list. Can be pressed + repeatedly until the closing of the top level form reached. + + < If standing on a delimiter (parenthesis or square bracket) + then moves it to the left by slurping or barfing the + s-expression to the left, depending on the direction of the + delimiter: + Pressing '<' when standing on a ')' makes the s-expression + to the left of the ')' going out of the current list. + Pressing '<' when standing on a '(' makes the s-expression + to the left of the '(' coming into the current list. + For example pressing < at position marked with |: + (aaa bbb|) ---> (aaa) bbb + aaa |(bbb) ---> (aaa bbb) + + > If standing on a delimiter (parenthesis or square bracket) + then moves it to the right by slurping or barfing the + s-expression to the right, depending on the direction of the + delimiter: + Pressing '>' when standing on a '(' makes the s-expression + to the right of the '(' going out of the current list. + Pressing '>' when standing on a ')' makes the s-expression + to the right of the ')' coming into the current list. + For example pressing < at position marked with |: + (aaa|) bbb ---> (aaa bbb) + |(aaa bbb) ---> aaa (bbb) + + J Join two subsequent lists or strings. The first one must end + before the cursor, the second one must start after the + cursor position. + For example pressing J at position marked with |: + (aaa)| (bbb) ---> (aaa bbb) + "aaa"| "bbb" ---> "aaa bbb" + + O Split ("Open") current list or string at the cursor position. + Opposite of Join. Key O is selected because for the original + Vim mapping J and O are also kind of opposites. + For example pressing O at position marked with |: + (aaa |bbb) ---> (aaa) (bbb) + "aaa|bbb" ---> "aaa" "bbb" + + W Wrap the current symbol in a pair of parentheses. The cursor + w( is then positioned on the opening parenthesis, as wrapping + is usually done because one wants to call a function with + the symbol as parameter, so by pressing "a" one can enter + the function name right after the newly inserted "(". + For example pressing W at position marked with |: + (aaa b|bb ccc) ---> (aaa (bbb) ccc) + + w[ Wrap the current symbol in a pair of square brackets, + similarly to W. + For example pressing w[ at position marked with |: + (aaa b|bb ccc) ---> (aaa [bbb] ccc) + + w" Wrap the current symbol in a pair of double quotes, + similarly to W. + For example pressing w" at position marked with |: + (aaa b|bb ccc) ---> (aaa "bbb" ccc) + + S Splice the current list into the containing list, i.e. + remove the opening and closing parens. Opposite of wrap. + For example pressing S at position marked with |: + (aaa (b|bb) ccc) ---> (aaa bbb ccc) + + x or When about to delete a (, ), [, ], or " and there are other + characters inside, then just skip it to the right. When + about to delete the closing part of the matched character + with nothing inside, then the whole empty list is removed. + When preceded by a value then delete this many + characters. + + X When about to delete a (, ), [, ], or " and there are other + characters inside, then just skip it to the left. When + about to delete the opening part of the matched character + with nothing inside, then the whole empty list is removed. + + D Keep deleting characters towards the end of line, + maintaining the balanced state, i.e. keep the number of + opening and closing parens the same. + + C Same as 'D' but go to insert mode at the end. + + s Same as 'x' but go to insert mode at the end. + + dd Delete whole line by keeping the balanced state, i.e. + keep the number of opening and closing parens the same. + When preceded by a value then delete this many + lines. + + S Same as 'dd' but go to insert mode at the end. + + d{motion} Delete text till {motion}. Keeps text balanced, so if the + surrounded text contains unpaired matched characters then + they are not removed. + + c{motion} Delete text till {motion} and start insert mode. Keeps text + balanced just like d{motion}. + + p Put the text after the cursor with all unbalanced matched + characters removed. + + P Put the text before the cursor with all unbalanced matched + characters removed. + + +Visual Mode: + + ( Finds opening '(' of the current list and selects the whole + list. Can be pressed repeatedly until the top level form + selected. + + ) Finds closing ')' of the current list and selects the whole + list. Can be pressed repeatedly until the top level form + selected. + + d Delete the current visual selection. Keeps text balanced, + x so the the selection contains unpaired matched characters + then they are not removed. + + c Delete the current visual selection and start insert mode. + Keeps text balanced just like the 'd' command. + + W Wrap the current visual selection in a pair of parentheses. + w( The visual selection is kept. + + w[ Wrap the current visual selection in a pair of square + brackets. The visual selection is kept. + + w" Wrap the current visual selection in a pair of double + quotes. The visual selection is kept. + + +Please note that if variable |g:paredit_shortmaps| is nonzero then the +following normal mode mappings don't get a prefix, they are mapped +to existing (but infrequently used) Vim functions and instead the original Vim +functions are mapped with the prefix: + + <, >, J, O, W, S + + + +=============================================================================== +EXTERNAL UTILITIES *slimv-external* + +This section is about utilities, settings, etc., not related strongly to Slimv, +but may be used to aim Lisp development. These are mostly built-in Vim features +or options, and sometimes external Vim plugins. +Slimv does not want to copy these functionalities, if they exist and work well. + + +1. Syntax highlighting + +The syntax highlighting is done via the default lisp.vim syntax plugin. +For Clojure files one has two options: +a. use the Lisp filetype also for Clojure files (that approach is used by Slimv + for the REPL buffer if no other filetype is set) +b. install a Clojure Vim syntax plugin, like VimClojure. + + +2. Indentation + +The indentation is also done via the default lisp.vim indent plugin, or an +optionally installed Clojure indent plugin, just like for the syntax +highlighting. +There are some built-in Vim reindentation commands that may come very handy +when editing Lisp files. One can define a custom key mapping for any of them, +such mappings are not defined by Slimv. + + :set autoindent Copy indent from current line when starting + a new line. + + = Reindent selection, after a text has been selected. + + == Reindent current line. + + vab= or [(v%= Select current list and reindent it. + + 99[(v%= Select top level form and reindent it. + + +3. Parenthesis handling + +First of all there is paredit mode. If you don't like it, Vim still obtains +many tools to aid working with parentheses. This is a very important topic +for a Lisp programmer. + + :inoremap ( ()i Automatically insert closing parenthesis mark when + an opening one is inserted. + + :inoremap [ []i Same as above but for square brackets. + + :set showmatch Briefly jump with the cursor to the matching + parenthesis or square bracket when a closing pair + is inserted. + + % Go to the matching parenthesis or square bracket. + + :source $VIMRUNTIME/macros/matchit.vim + Adds extended matching with "%" to Vim. + + vab or [(v% Select current list. + vib Select current list without enclosing parentheses. + yab Yank current list. + dab Delete current list. + + 99[(v% Select top level form. + + g:lisp_rainbow Colorize differing levels of parenthesization with + different highlighting. Currently works only for + the 'lisp' filetype, hopefully it will be added + soon to the Clojure plugins as well. + + +4. Completion + + CTRL-N The built-in Vim keyword completion is a very handy + CTRL-P feature. You start typing a word, and when CTRL-P + or CTRL-N is pressed, then Vim looks up the keyword + starting with the same letters as typed in up or + down direction in the current buffer. + This is not the same as the omni-completion + feature (see |slimv-hyperspec|). Omni-completion is + based on a symbol database and not on the contents + of the current buffer. + + :set complete The |'complete'| option controls how keyword + completion works. + + +5. Tag lookup + +Also see Slimv option |g:slimv_ctags|. + + |ctags| "Exuberant ctags" is a powerful utility for + generating tag database for different kind of + programming languages, including Lisp. Tag lookup + is then done via the CTRL-] (or :tag) command, + return to the previous positon with CTRL-T. + + ctags --language-force=lisp *.lisp *.clj + This or a similar command may be used to generate + tags file from .lisp and .clj files in a directory. + + +=============================================================================== +FAQ *slimv-faq* + +- Q: Why is this plugin called 'Slimv'? +- A: Because it is trying to mimic the popular Emacs extension 'SLIME'. + In SLIME 'E' stands for 'Emacs', so here it is replaced with 'V' as Vim. + To tell the truth, first I gave the name 'Slimvim' to the plugin but + then I found an (already abandoned) project called 'Slim-Vim' and I did + not want to interfere with it. + +- Q: Why another 'Superior Lisp Mode' if there is already one (for Emacs)? +- A: Because many programmers prefer Vim as a program text editor over Emacs, + including me. I don't want to start a holy war or whatsoever, I'm just + happy if someone else finds this plugin useful. + +- Q: But there are other similar projects for Vim. Why having yet another + SLIMxxx for Vim? +- A: To my knowledge, none of the above mentioned Vim scripts/extensions + contain all the functionalities of SLIME (nor does Slimv, to tell the + truth). There is definitely room for improvement. + It would be nice to make Vim as usable as Emacs for Lisp programming. + In my opinion the main barrier is the lack of asynchronous buffer update + in Vim, but this may change in the future. + +- Q: How does Slimv work? +- A: Slimv consists of three parts: Vim plugin, client and server. + The Slimv server is a swank server that embeds a console Lisp REPL + via pipes, catching all REPL input/output. + The Slimv client interfaces with the server and is responsible + for sending Lisp commands to the Lisp REPL. + The Vim plugin is translating editor commands to Lisp commands to be + sent to the server by the client. + So the dataflow is like this: + Vim -> Vim plugin -> Slimv client -> Slimv server -> Lisp REPL + The plugin resides in 'slimv.vim', the client and the server both + located in 'slimv.py'. + +- Q: Why is SLIME functionality XYZ missing from Slimv? +- A: There are two possible reasons: + 1. The dataflow of Slimv is one-directional: from client to server. + There is no data sent back from the server to the client, so if a + functionality requires that Slimv reads data from REPL, then + currently it is not possible to implement it. + 2. It is possible to implement it, but I did not (yet) do it. + Maybe future releases will contain it. + +- Q: Why is the default port number 5151? +- A: Hint: what roman numerals are 5,1,5,1? Bingo: VI, doubled. + +- Q: What is the version numbering concept? +- A: .., where: + major version: Let's talk about it when it reaches 1... + minor version: New functionalities added, that are worth mentioning. + bugfix release: Only bugfixes or tiny additions. + +- Q: Why is the plugin distributed in zip file? +- A: I want that Windows/Linux/Mac users all can easily extract the plugin + files. For this reason the vimball or zip format seems to be a good + choice. There is no native .tar, .tar.gz, .tar.bz2 decompressors on + Windows (however there exist free tools for the job, like 7zip). + I'm relatively new to vimball and it looks like a good candidate, but + I have some problems with it: + 1. It is uncompressed, and if I want to compress it then I will end up + having it zipped. + 2. The .vba extension is also used for Visual Basic scripts on Windows + and this frequently contains virus, so Windows users may dislike it. + And remembering the very first time I met a vba file I was thinking + that someone had created a Visual Basic installer for the script. + 3. Many Vim users don't know vimball but most of them know zip files. + +- Q: Are you a Lisp expert? +- A: No, not at all. I'm just learning Lisp. Also just learning Vim + scripting. And I'm not a Python expert either, however (at the moment) + I have more experience with Python than with Lisp. + +- Q: What about Clojure? +- A: I have even less experience with Clojure than with Lisp. + But it looks like the Slimv functions can be easily ported for Clojure, + and as there are not many (yet) Vim scripts written for Clojure, I gave + it a try. + +- Q: Why using Python for the client/server code? Why not Lisp? +- A: This is for historical reasons and may change in the future. + Preliminary versions used Vim's built-in Python support. + Later on the client/server code was separated from Vim but still remained + written in Python. On Linux this should not be a problem, most Linux + distributions contain a Python interpreter with high enough version. + On Windows this means, you need to install Python, if you don't have + one (at least version 2.4). Anyway, Python is a nice language and + also a perfect replacement for calculator.exe :) + +=============================================================================== +CHANGE LOG *slimv-changelog* + +0.7.1 - Added option g:slimv_browser_cmd for opening hyperspec in a custom + webbrowser (on behalf of Andreas Salwasser). + - Added paredit handling for d, c, p and P commands: + keep paren balance when deleting and pasting text. + - Paredit Toggle function removes and re-adds paredit keybindings. + - Bugfix: D and C deleted till beginning of line if () or [] found. + - Bugfix: handle escaped \" characters inside string. + +0.7.0 - Added package/namespace support. + - New way of refreshing the REPL buffer via autocommands, removed + 'RUNNING' mode, cursor stays in the current buffer at evaluation. + - Added option g:slimv_updatetime. + - Removed options related to the old way of refreshing: + g:slimv_repl_return and g:slimv_repl_wait. + - Removed debug logging. + - Updated Clojure API to version 1.2. + - Extended keyword definition when selecting symbols. + - Bugfix: defmacro detection problem (again). + +0.6.3 - Added option g:slimv_repl_return to return cursor to the editor window + from REPL buffer after evaluating an s-expression. + - Wrap: if standing on a paren then wrap the whole s-expression. + - Wrap selection: exit visual mode after command. + - Bugfix: inserting double quotes in paredit mode (like "\""). + - Bugfix: dd in paredit mode when unbalanced form is inside comment. + - Bugfix: reopen REPL buffer after closing it via :q. + - Bugfix: comment and string detection error with noignorecase setting + (thanks to Brian Kropf). + - Bugfix: wrong positioning when moving parenthesis to the right. + - Bugfix: defmacro detection problem (thanks to Philipp Marek). + - Bugfix: paredit wrap selection missed last character when 'selection' + was not "exclusive". + +0.6.2 - Added support for Mac OS X via Terminal.app (on behalf of Vlad Hanciuta). + - Added string "clj" as a detector for Clojure (by Vlad Hanciuta). + - Bugfix: paredit wrap function missed last character when 'selection' + was not "exclusive" (thanks to Marcin Fatyga). + - Bugfix: input was stuck inside SBCL debugger + (on behalf of Philipp Marek and Dmitry Petukhov). + - Bugfix: occasional error messages during REPL buffer update. + - Bugfix: REPL menu was sometimes missing. + - Bugfix: occasional command line color problems. + +0.6.1 - Added Split, Join, Wrap, Splice functions to Paredit Mode. + - Added g:paredit_shortmaps to select short/long paredit keymaps. + - Bugfix: delete commands put erased characters into yank buffer. + - Bugfix: D deletes only characters after the cursor position. + +0.6.0 - Added paredit mode. + - Set wrap mode for REPL buffer with keybindings. + +0.5.6 - Improved REPL buffer response time. + - Added debug log flushing frequency. + - Bugfix: early exit of REPL refresh mode on some machines. + +0.5.5 - Updated Clojure API to 1.1. + - Expand tilde-prefix to home directory on Linux. + - Autodetect Clojure in the user home directory on Linux. + +0.5.4 - Added autodetection for clojure-contrib.jar. + - Added autodetection for Clozure CL. + - Applied lisp_rainbow to Clojure's []. + - Renamed Clojure indent plugin to clojure.vim + so that Vim finds and loads it. + - Switched on lisp mode explicitly for Clojure filetype. + +0.5.3 - Added Interrupt-Lisp-Process command. + - Added mapping for the REPL menu. + - Added special forms to Clojre API lookup. + - Bugfix: put cursor after the last character in insert mode when + continuously refreshing REPL buffer. + - Fixed some Ctrl-C handling problems. + +0.5.2 - Updated Clojure API. + - Adapted Clojure autodetection to version 1.0 (clojure-1.0.0.jar). + - Complete-Symbol command moved to separate Edit submenu. + - Added Close-Form command to the Edit submenu. + +0.5.1 - Added symbol name completion based on the Hyperspec database. + +0.5.0 - Major project reorganization: + Slimv is now a Lisp and Clojure filetype plugin. + - Added Common Lisp Hyperspec, Clojure API, and JavaDoc lookup. + - Separate menu for REPL buffer, menu items work in every Vim mode. + - Fixed mark 's usage bug - thanks to Lorenzo Campedelli. + +0.4.1 - Added profiler support for SBCL. + - Added commands/menu items: Profiling: Show Profiled, + REPL: Send Input, Close and Send Input, Previous Input, Next Input + - Display Slimv error messages with ErrorMsg highlight. + +0.4.0 - Added SLIME's profiling tool with support from Slimv. + - Added command to generate tags file. + - Fixed evaluation problems of large buffers on some systems. + - Fixed Compile And Load filename problems with '\' on Windows. + - Recycle old REPL temporary file at next server startup. + +0.3.0 - Added syntax highlighting and automatic indentation for the REPL + buffer (needs lisp and/or clojure Vim plugins). + - It is possible to enter a multi-line command in the REPL buffer, + until the opening and closing parens match. + - Insert mode Up and Down keys move cursor when outside of the REPL + command line. + - Ctrl-C is working inside the REPL buffer (while waiting for output), + so Ctrl-X and Ctrl-X Ctrl-X keybindings are removed. + - REPL window performance enhancement on Linux. + +0.2.2 - Fixed REPL input and output mix-up problems. + - Evaluation performance enhancement. + - Corrected some more macroexpand problems. + +0.2.1 - Added basic Clojure support. + - Corrected some macroexpand problems. + - Fixed a REPL buffer refresh bug. + +0.2.0 - Major update: Lisp REPL displayed in a Vim buffer. + +0.1.4 - Corrected the delayed display of last line in REPL window on Linux. + - Ctrl-C is propagated to Lisp REPL, so it is possible to interrupt + a running program. Does not work however with some Lisp + implementations (like SBCL). + +0.1.3 - Handle DOS and Unix style newlines produced by various + Lisp implementations on Windows. + - Do not write debug logfile when debug level is zero. + - Removed unused client command line argument: -c + +0.1.2 - Windows users do not need pywin32 anymore. + - Display buffer is more thread safe. + +0.1.1 - Corrected memory fillup problem after a long REPL session. + +0.1 - Initial release. + +=============================================================================== +ISSUES, LIMITATIONS, KNOWN BUGS *slimv-issues* + +- Works only with the console Lisp and Python versions, does not work with the + GUI Lisp versions or with a Python IDE (like IDLE). +- Does not work from within Cygwin. +- Vim register "s is used for all form selections, so its original content is + destroyed. +- Vim mark 's is used to mark the end of the REPL buffer, i.e. the beginning + of the "command line". +- Limited profiling support: does not work for all Lisp implementations. +- Needs Vim version 7.0 or above, because of the intensive use of lists. +- Needs Python 2.4 or higher (uses the subprocess module) +- Sometimes a Python exception happens after a CTRL-C inside the REPL buffer + followed by an EOF (CTRL-Z or CTRL-D) in the external REPL window. +- REPL buffer refresh on Vim focus gain works only in gvim, not in console vim. +- Interruption (Ctrl-C) does not work with all Lisp implementations. + For example SBCL exits on Windows when receiving Ctrl-C. + It does not work in Clojure. + In this case use the Interrupt-Lisp-Process menu command. +- There are some functions that are not compatible or simply not working for + Clojure. +- It is not possible to run separate Lisp and Clojure REPL in the same + Slimv session. Also some other features cannot switch language in the same + session, e.g. profiling. + + +=============================================================================== +TODO *slimv-todo* + +- Add Swank support, i.e. send commands to SLIME's Swank server. + +=============================================================================== +CREDITS *slimv-credits* + +Author: Tamas Kovacs + +Please send comments, bug reports, suggestions, etc. to the e-mail address +above. + +Credit must go out to Bram Moolenaar and all the Vim developers for making +the world's (one of the) best editor. +Thanks to Eric Marsden and all the Emacs/SLIME developers for making SLIME. +Special thanks to Mark Kantrowitz, Chris McConnell, Skef Wholey and +Rob MacLachlan for creating the Metering System. +Also special thanks to Erik Naggum, Yuji Minejima and others for making the +Common Lisp Hyperspec lookup packages for SLIME, and thanks to +Taylor R. Campbell for the Emacs paredit.el script. +Thanks to the Vim community for testing, commenting and patching the script, +especially to Philipp Marek, Vlad Hanciuta, Marcin Fatyga, Dmitry Petukhov, +Daniel Solano Gómez, Brian Kropf, Len Weincier, Andreas Salwasser. +Last but not least many thanks to my wife Andrea (for the Italians out there: +hey, this is a female name in Hungary :) for her support and patience. + +=============================================================================== +vim:tw=80:noet:wrap:ts=8:ft=help:norl: diff -r e0f13b88e80e -r c4d3b4507707 vim/bundle/slimv/ftdetect/clojure.vim --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vim/bundle/slimv/ftdetect/clojure.vim Fri Nov 12 18:30:35 2010 -0500 @@ -0,0 +1,2 @@ +au BufNewFile,BufRead *.clj setf clojure + diff -r e0f13b88e80e -r c4d3b4507707 vim/bundle/slimv/ftplugin/clojure/slimv-clojure.vim --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vim/bundle/slimv/ftplugin/clojure/slimv-clojure.vim Fri Nov 12 18:30:35 2010 -0500 @@ -0,0 +1,117 @@ +" slimv-clojure.vim: +" Clojure filetype plugin for Slimv +" Version: 0.6.1 +" Last Change: 27 Apr 2010 +" Maintainer: Tamas Kovacs +" License: This file is placed in the public domain. +" No warranty, express or implied. +" *** *** Use At-Your-Own-Risk! *** *** +" +" ===================================================================== +" +" Load Once: +if &cp || exists( 'g:slimv_clojure_loaded' ) + finish +endif + +let g:slimv_clojure_loaded = 1 + +" Build a Clojure startup command by adding +" all clojure*.jar files found to the classpath +function! b:SlimvBuildStartCmd( lisps ) + let cp = a:lisps[0] + let i = 1 + while i < len( a:lisps ) + let cp = cp . ';' . a:lisps[i] + let i = i + 1 + endwhile + return ['"java -cp ' . cp . ' clojure.main"', 'clojure'] +endfunction + +" Try to autodetect Clojure executable +" Returns list [Clojure executable, Clojure implementation] +function! b:SlimvAutodetect() + " Firts try the most basic setup: everything in the path + let lisps = [] + if executable( 'clojure.jar' ) + let lisps = ['clojure.jar'] + endif + if executable( 'clojure-contrib.jar' ) + let lisps = lisps + 'clojure-contrib.jar' + endif + if len( lisps ) > 0 + return b:SlimvBuildStartCmd( lisps ) + endif + + " Try to find Clojure in the PATH + let path = substitute( $PATH, ';', ',', 'g' ) + let lisps = split( globpath( path, 'clojure*.jar' ), '\n' ) + if len( lisps ) > 0 + return b:SlimvBuildStartCmd( lisps ) + endif + + if g:slimv_windows + " Try to find Clojure on the standard installation places + let lisps = split( globpath( 'c:/*clojure*', 'clojure*.jar' ), '\n' ) + if len( lisps ) > 0 + return b:SlimvBuildStartCmd( lisps ) + endif + else + " Try to find Clojure in the home directory + "TODO: add /usr/local/bin/clojure + let lisps = split( globpath( '~/*clojure*', 'clojure*.jar' ), '\n' ) + if len( lisps ) > 0 + return b:SlimvBuildStartCmd( lisps ) + endif + endif + + return ['', ''] +endfunction + +" Try to find out the Clojure implementation +function! b:SlimvImplementation() + if exists( 'g:slimv_impl' ) && g:slimv_impl != '' + " Return Lisp implementation if defined + return tolower( g:slimv_impl ) + endif + + return 'clojure' +endfunction + +" Filename for the REPL buffer file +function! b:SlimvREPLFile() + return 'Slimv.REPL.clj' +endfunction + +" Lookup symbol in the list of Clojure Hyperspec symbol databases +function! b:SlimvHyperspecLookup( word, exact, all ) + if !exists( 'g:slimv_cljapi_loaded' ) + runtime ftplugin/**/slimv-cljapi.vim + endif + + if !exists( 'g:slimv_javadoc_loaded' ) + runtime ftplugin/**/slimv-javadoc.vim + endif + + let symbol = [] + if exists( 'g:slimv_cljapi_db' ) + let symbol = SlimvFindSymbol( a:word, a:exact, a:all, g:slimv_cljapi_db, g:slimv_cljapi_root, symbol ) + endif + if exists( 'g:slimv_javadoc_db' ) + let symbol = SlimvFindSymbol( a:word, a:exact, a:all, g:slimv_javadoc_db, g:slimv_javadoc_root, symbol ) + endif + if exists( 'g:slimv_cljapi_user_db' ) + " Give a choice for the user to extend the symbol database + if exists( 'g:slimv_cljapi_user_root' ) + let user_root = g:slimv_cljapi_user_root + else + let user_root = '' + endif + let symbol = SlimvFindSymbol( a:word, a:exact, a:all, g:slimv_cljapi_user_db, user_root, symbol ) + endif + return symbol +endfunction + +" Source Slimv general part +runtime ftplugin/**/slimv.vim + diff -r e0f13b88e80e -r c4d3b4507707 vim/bundle/slimv/ftplugin/lisp/slimv-lisp.vim --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vim/bundle/slimv/ftplugin/lisp/slimv-lisp.vim Fri Nov 12 18:30:35 2010 -0500 @@ -0,0 +1,149 @@ +" slimv-lisp.vim: +" Lisp filetype plugin for Slimv +" Version: 0.6.0 +" Last Change: 12 Apr 2010 +" Maintainer: Tamas Kovacs +" License: This file is placed in the public domain. +" No warranty, express or implied. +" *** *** Use At-Your-Own-Risk! *** *** +" +" ===================================================================== +" +" Load Once: +if &cp || exists( 'g:slimv_lisp_loaded' ) + finish +endif + +let g:slimv_lisp_loaded = 1 + +" Try to autodetect Lisp executable +" Returns list [Lisp executable, Lisp implementation] +function! b:SlimvAutodetect() + " Check the easy cases + if executable( 'clisp' ) + " Common Lisp + return ['clisp', 'clisp'] + endif + if executable( 'gcl' ) + " GNU Common Lisp + return ['gcl', 'clisp'] + endif + if executable( 'cmucl' ) + " Carnegie Mellon University Common Lisp + return ['cmucl', 'cmu'] + endif + if executable( 'sbcl' ) + " Steel Bank Common Lisp + return ['sbcl', 'sbcl'] + endif + if executable( 'ecl' ) + " Embeddable Common Lisp + return ['ecl', 'ecl'] + endif + if executable( 'acl' ) + " Allegro Common Lisp + return ['acl', 'allegro'] + endif + if executable( 'lwl' ) + " LispWorks + return ['lwl', 'lispworks'] + endif + if g:slimv_windows && executable( 'wx86cl' ) + " Clozure CL + return ['wx86cl', 'clozure'] + endif + if !g:slimv_windows && executable( 'lx86cl' ) + " Clozure CL + return ['lx86cl', 'clozure'] + endif + + if g:slimv_windows + " Try to find Lisp on the standard installation places + let lisps = split( globpath( 'c:/*lisp*,c:/Program Files/*lisp*', '*lisp.exe' ), '\n' ) + if len( lisps ) > 0 + return [lisps[0], 'clisp'] + endif + let lisps = split( globpath( 'c:/*lisp*/*,c:/Program Files/*lisp*/*', '*lisp.exe' ), '\n' ) + if len( lisps ) > 0 + return [lisps[0], 'clisp'] + endif + let lisps = split( globpath( 'c:/*lisp*/**,c:/Program Files/*lisp*/**', '*lisp.exe' ), '\n' ) + if len( lisps ) > 0 + return [lisps[0], 'clisp'] + endif + let lisps = split( globpath( 'c:/gcl*,c:/Program Files/gcl*', 'gcl.exe' ), '\n' ) + if len( lisps ) > 0 + return [lisps[0], 'clisp'] + endif + let lisps = split( globpath( 'c:/cmucl*,c:/Program Files/cmucl*', 'cmucl.exe' ), '\n' ) + if len( lisps ) > 0 + return [lisps[0], 'cmu'] + endif + let lisps = split( globpath( 'c:/sbcl*,c:/Program Files/sbcl*', 'sbcl.exe' ), '\n' ) + if len( lisps ) > 0 + return [lisps[0], 'sbcl'] + endif + let lisps = split( globpath( 'c:/ecl*,c:/Program Files/ecl*', 'ecl.exe' ), '\n' ) + if len( lisps ) > 0 + return [lisps[0], 'ecl'] + endif + let lisps = split( globpath( 'c:/ccl*,c:/Program Files/ccl*', 'wx86cl.exe' ), '\n' ) + if len( lisps ) > 0 + return [lisps[0], 'clozure'] + endif + endif + + return ['', ''] +endfunction + +" Try to find out the Lisp implementation +function! b:SlimvImplementation() + if exists( 'g:slimv_impl' ) && g:slimv_impl != '' + " Return Lisp implementation if defined + return tolower( g:slimv_impl ) + endif + + if exists( 'g:slimv_lisp' ) && match( tolower( g:slimv_lisp ), 'sbcl' ) >= 0 + return 'sbcl' + endif + + return 'clisp' +endfunction + +" Filename for the REPL buffer file +function! b:SlimvREPLFile() + return 'Slimv.REPL.lisp' +endfunction + +" Lookup symbol in the list of Lisp Hyperspec symbol databases +function! b:SlimvHyperspecLookup( word, exact, all ) + if !exists( 'g:slimv_clhs_loaded' ) + runtime ftplugin/**/slimv-clhs.vim + endif + + let symbol = [] + if exists( 'g:slimv_clhs_loaded' ) + let symbol = SlimvFindSymbol( a:word, a:exact, a:all, g:slimv_clhs_clhs, g:slimv_clhs_root, symbol ) + let symbol = SlimvFindSymbol( a:word, a:exact, a:all, g:slimv_clhs_issues, g:slimv_clhs_root, symbol ) + let symbol = SlimvFindSymbol( a:word, a:exact, a:all, g:slimv_clhs_chapters, g:slimv_clhs_root, symbol ) + let symbol = SlimvFindSymbol( a:word, a:exact, a:all, g:slimv_clhs_control_chars, g:slimv_clhs_root, symbol ) + let symbol = SlimvFindSymbol( a:word, a:exact, a:all, g:slimv_clhs_macro_chars, g:slimv_clhs_root, symbol ) + let symbol = SlimvFindSymbol( a:word, a:exact, a:all, g:slimv_clhs_loop, g:slimv_clhs_root, symbol ) + let symbol = SlimvFindSymbol( a:word, a:exact, a:all, g:slimv_clhs_arguments, g:slimv_clhs_root, symbol ) + let symbol = SlimvFindSymbol( a:word, a:exact, a:all, g:slimv_clhs_glossary, g:slimv_clhs_root, symbol ) + endif + if exists( 'g:slimv_clhs_user_db' ) + " Give a choice for the user to extend the symbol database + if exists( 'g:slimv_clhs_user_root' ) + let user_root = g:slimv_clhs_user_root + else + let user_root = '' + endif + let symbol = SlimvFindSymbol( a:word, a:exact, a:all, g:slimv_clhs_user_db, user_root, symbol ) + endif + return symbol +endfunction + +" Source Slimv general part +runtime ftplugin/**/slimv.vim + diff -r e0f13b88e80e -r c4d3b4507707 vim/bundle/slimv/ftplugin/metering.lisp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vim/bundle/slimv/ftplugin/metering.lisp Fri Nov 12 18:30:35 2010 -0500 @@ -0,0 +1,1227 @@ +;;; -*- Mode: LISP; Package: monitor; Syntax: Common-lisp; Base: 10.; -*- +;;; Tue Jan 25 18:32:28 1994 by Mark Kantrowitz + +;;; **************************************************************** +;;; Metering System ************************************************ +;;; **************************************************************** +;;; +;;; The Metering System is a portable Common Lisp code profiling tool. +;;; It gathers timing and consing statistics for specified functions +;;; while a program is running. +;;; +;;; The Metering System is a combination of +;;; o the Monitor package written by Chris McConnell +;;; o the Profile package written by Skef Wholey and Rob MacLachlan +;;; The two systems were merged and extended by Mark Kantrowitz. +;;; +;;; Address: Carnegie Mellon University +;;; School of Computer Science +;;; Pittsburgh, PA 15213 +;;; +;;; This code is in the public domain and is distributed without warranty +;;; of any kind. +;;; +;;; This copy is from SLIME, http://www.common-lisp.net/project/slime/ +;;; +;;; + +;;; ******************************** +;;; Change Log ********************* +;;; ******************************** +;;; +;;; 26-JUN-90 mk Merged functionality of Monitor and Profile packages. +;;; 26-JUN-90 mk Now handles both inclusive and exclusive statistics +;;; with respect to nested calls. (Allows it to subtract +;;; total monitoring overhead for each function, not just +;;; the time spent monitoring the function itself.) +;;; 26-JUN-90 mk The table is now saved so that one may manipulate +;;; the data (sorting it, etc.) even after the original +;;; source of the data has been cleared. +;;; 25-SEP-90 mk Added get-cons functions for Lucid 3.0, MACL 1.3.2 +;;; required-arguments functions for Lucid 3.0, +;;; Franz Allegro CL, and MACL 1.3.2. +;;; 25-JAN-91 mk Now uses fdefinition if available. +;;; 25-JAN-91 mk Replaced (and :allegro (not :coral)) with :excl. +;;; Much better solution for the fact that both call +;;; themselves :allegro. +;;; 5-JUL-91 mk Fixed warning to occur only when file is loaded +;;; uncompiled. +;;; 5-JUL-91 mk When many unmonitored functions, print out number +;;; instead of whole list. +;;; 24-MAR-92 mk Updated for CLtL2 compatibility. space measuring +;;; doesn't work in MCL, but fixed so that timing +;;; statistics do. +;;; 26-MAR-92 mk Updated for Lispworks. Replaced :ccl with +;;; (and :ccl (not :lispworks)). +;;; 27-MAR-92 mk Added get-cons for Allegro-V4.0. +;;; 01-JAN-93 mk v2.0 Support for MCL 2.0, CMU CL 16d, Allegro V3.1/4.0/4.1, +;;; Lucid 4.0, ibcl +;;; 25-JAN-94 mk v2.1 Patches for CLISP from Bruno Haible. +;;; 01-APR-05 lgorrie Removed support for all Lisps except CLISP and OpenMCL. +;;; Purely to cut down on stale code (e.g. #+cltl2) in this +;;; version that is bundled with SLIME. +;;; 22-Aug-08 stas Define TIME-TYPE for Clozure CL. +;;; + +;;; ******************************** +;;; To Do ************************** +;;; ******************************** +;;; +;;; - Need get-cons for Allegro, AKCL. +;;; - Speed up monitoring code. Replace use of hash tables with an embedded +;;; offset in an array so that it will be faster than using gethash. +;;; (i.e., svref/closure reference is usually faster than gethash). +;;; - Beware of (get-internal-run-time) overflowing. Yikes! +;;; - Check robustness with respect to profiled functions. +;;; - Check logic of computing inclusive and exclusive time and consing. +;;; Especially wrt incf/setf comment below. Should be incf, so we +;;; sum recursive calls. +;;; - Add option to record caller statistics -- this would list who +;;; called which functions and how often. +;;; - switches to turn timing/CONSING statistics collection on/off. + + +;;; ******************************** +;;; Notes ************************** +;;; ******************************** +;;; +;;; METERING has been tested (successfully) in the following lisps: +;;; CMU Common Lisp (16d, Python Compiler 1.0 ) :new-compiler +;;; CMU Common Lisp (M2.9 15-Aug-90, Compiler M1.8 15-Aug-90) +;;; Macintosh Allegro Common Lisp (1.3.2) +;;; Macintosh Common Lisp (2.0) +;;; ExCL (Franz Allegro CL 3.1.12 [DEC 3100] 11/19/90) :allegro-v3.1 +;;; ExCL (Franz Allegro CL 4.0.1 [Sun4] 2/8/91) :allegro-v4.0 +;;; ExCL (Franz Allegro CL 4.1 [SPARC R1] 8/28/92 14:06) :allegro-v4.1 +;;; ExCL (Franz ACL 5.0.1 [Linux/X86] 6/29/99 16:11) :allegro-v5.0.1 +;;; Lucid CL (Version 2.1 6-DEC-87) +;;; Lucid Common Lisp (3.0) +;;; Lucid Common Lisp (4.0.1 HP-700 12-Aug-91) +;;; AKCL (1.86, June 30, 1987 or later) +;;; Ibuki Common Lisp (Version 2, release 01.027) +;;; CLISP (January 1994) +;;; +;;; METERING needs to be tested in the following lisps: +;;; Symbolics Common Lisp (8.0) +;;; KCL (June 3, 1987 or later) +;;; TI (Release 4.1 or later) +;;; Golden Common Lisp (3.1 IBM-PC) +;;; VAXLisp (2.0, 3.1) +;;; Procyon Common Lisp + + +;;; **************************************************************** +;;; Documentation ************************************************** +;;; **************************************************************** +;;; +;;; This system runs in any valid Common Lisp. Four small +;;; implementation-dependent changes can be made to improve performance +;;; and prettiness. In the section labelled "Implementation Dependent +;;; Changes" below, you should tailor the functions REQUIRED-ARGUMENTS, +;;; GET-CONS, GET-TIME, and TIME-UNITS-PER-SECOND to your implementation +;;; for the best results. If GET-CONS is not specified for your +;;; implementation, no consing information will be reported. The other +;;; functions will default to working forms, albeit inefficient, in +;;; non-CMU implementations. If you tailor these functions for a particular +;;; version of Common Lisp, we'd appreciate receiving the code. +;;; + +;;; **************************************************************** +;;; Usage Notes **************************************************** +;;; **************************************************************** +;;; +;;; SUGGESTED USAGE: +;;; +;;; Start by monitoring big pieces of the program, then carefully choose +;;; which functions close to, but not in, the inner loop are to be +;;; monitored next. Don't monitor functions that are called by other +;;; monitored functions: you will only confuse yourself. +;;; +;;; If the per-call time reported is less than 1/10th of a second, then +;;; consider the clock resolution and profiling overhead before you believe +;;; the time. It may be that you will need to run your program many times +;;; in order to average out to a higher resolution. +;;; +;;; The easiest way to use this package is to load it and execute either +;;; (mon:with-monitoring (names*) () +;;; your-forms*) +;;; or +;;; (mon:monitor-form your-form) +;;; The former allows you to specify which functions will be monitored; the +;;; latter monitors all functions in the current package. Both automatically +;;; produce a table of statistics. Other variants can be constructed from +;;; the monitoring primitives, which are described below, along with a +;;; fuller description of these two macros. +;;; +;;; For best results, compile this file before using. +;;; +;;; +;;; CLOCK RESOLUTION: +;;; +;;; Unless you are very lucky, the length of your machine's clock "tick" is +;;; probably much longer than the time it takes a simple function to run. +;;; For example, on the IBM RT, the clock resolution is 1/50th of a second. +;;; This means that if a function is only called a few times, then only the +;;; first couple of decimal places are really meaningful. +;;; +;;; +;;; MONITORING OVERHEAD: +;;; +;;; The added monitoring code takes time to run every time that the monitored +;;; function is called, which can disrupt the attempt to collect timing +;;; information. In order to avoid serious inflation of the times for functions +;;; that take little time to run, an estimate of the overhead due to monitoring +;;; is subtracted from the times reported for each function. +;;; +;;; Although this correction works fairly well, it is not totally accurate, +;;; resulting in times that become increasingly meaningless for functions +;;; with short runtimes. For example, subtracting the estimated overhead +;;; may result in negative times for some functions. This is only a concern +;;; when the estimated profiling overhead is many times larger than +;;; reported total CPU time. +;;; +;;; If you monitor functions that are called by monitored functions, in +;;; :inclusive mode the monitoring overhead for the inner function is +;;; subtracted from the CPU time for the outer function. [We do this by +;;; counting for each function not only the number of calls to *this* +;;; function, but also the number of monitored calls while it was running.] +;;; In :exclusive mode this is not necessary, since we subtract the +;;; monitoring time of inner functions, overhead & all. +;;; +;;; Otherwise, the estimated monitoring overhead is not represented in the +;;; reported total CPU time. The sum of total CPU time and the estimated +;;; monitoring overhead should be close to the total CPU time for the +;;; entire monitoring run (as determined by TIME). +;;; +;;; A timing overhead factor is computed at load time. This will be incorrect +;;; if the monitoring code is run in a different environment than this file +;;; was loaded in. For example, saving a core image on a high performance +;;; machine and running it on a low performance one will result in the use +;;; of an erroneously small overhead factor. +;;; +;;; +;;; If your times vary widely, possible causes are: +;;; - Garbage collection. Try turning it off, then running your code. +;;; Be warned that monitoring code will probably cons when it does +;;; (get-internal-run-time). +;;; - Swapping. If you have enough memory, execute your form once +;;; before monitoring so that it will be swapped into memory. Otherwise, +;;; get a bigger machine! +;;; - Resolution of internal-time-units-per-second. If this value is +;;; too low, then the timings become wild. You can try executing more +;;; of whatever your test is, but that will only work if some of your +;;; paths do not match the timer resolution. +;;; internal-time-units-per-second is so coarse -- on a Symbolics it is +;;; 977, in MACL it is 60. +;;; +;;; + +;;; **************************************************************** +;;; Interface ****************************************************** +;;; **************************************************************** +;;; +;;; WITH-MONITORING (&rest functions) [Macro] +;;; (&optional (nested :exclusive) +;;; (threshold 0.01) +;;; (key :percent-time)) +;;; &body body +;;; The named functions will be set up for monitoring, the body forms executed, +;;; a table of results printed, and the functions unmonitored. The nested, +;;; threshold, and key arguments are passed to report-monitoring below. +;;; +;;; MONITOR-FORM form [Macro] +;;; &optional (nested :exclusive) +;;; (threshold 0.01) +;;; (key :percent-time) +;;; All functions in the current package are set up for monitoring while +;;; the form is executed, and automatically unmonitored after a table of +;;; results has been printed. The nested, threshold, and key arguments +;;; are passed to report-monitoring below. +;;; +;;; *MONITORED-FUNCTIONS* [Variable] +;;; This holds a list of all functions that are currently being monitored. +;;; +;;; MONITOR &rest names [Macro] +;;; The named functions will be set up for monitoring by augmenting +;;; their function definitions with code that gathers statistical information +;;; about code performance. As with the TRACE macro, the function names are +;;; not evaluated. Calls the function MON::MONITORING-ENCAPSULATE on each +;;; function name. If no names are specified, returns a list of all +;;; monitored functions. +;;; +;;; If name is not a symbol, it is evaled to return the appropriate +;;; closure. This allows you to monitor closures stored anywhere like +;;; in a variable, array or structure. Most other monitoring packages +;;; can't handle this. +;;; +;;; MONITOR-ALL &optional (package *package*) [Function] +;;; Monitors all functions in the specified package, which defaults to +;;; the current package. +;;; +;;; UNMONITOR &rest names [Macro] +;;; Removes monitoring code from the named functions. If no names are +;;; specified, all currently monitored functions are unmonitored. +;;; +;;; RESET-MONITORING-INFO name [Function] +;;; Resets the monitoring statistics for the specified function. +;;; +;;; RESET-ALL-MONITORING [Function] +;;; Resets the monitoring statistics for all monitored functions. +;;; +;;; MONITORED name [Function] +;;; Predicate to test whether a function is monitored. +;;; +;;; REPORT-MONITORING &optional names [Function] +;;; (nested :exclusive) +;;; (threshold 0.01) +;;; (key :percent-time) +;;; Creates a table of monitoring information for the specified list +;;; of names, and displays the table using display-monitoring-results. +;;; If names is :all or nil, uses all currently monitored functions. +;;; Takes the following arguments: +;;; - NESTED specifies whether nested calls of monitored functions +;;; are included in the times for monitored functions. +;;; o If :inclusive, the per-function information is for the entire +;;; duration of the monitored function, including any calls to +;;; other monitored functions. If functions A and B are monitored, +;;; and A calls B, then the accumulated time and consing for A will +;;; include the time and consing of B. Note: if a function calls +;;; itself recursively, the time spent in the inner call(s) may +;;; be counted several times. +;;; o If :exclusive, the information excludes time attributed to +;;; calls to other monitored functions. This is the default. +;;; - THRESHOLD specifies that only functions which have been executed +;;; more than threshold percent of the time will be reported. Defaults +;;; to 1%. If a threshold of 0 is specified, all functions are listed, +;;; even those with 0 or negative running times (see note on overhead). +;;; - KEY specifies that the table be sorted by one of the following +;;; sort keys: +;;; :function alphabetically by function name +;;; :percent-time by percent of total execution time +;;; :percent-cons by percent of total consing +;;; :calls by number of times the function was called +;;; :time-per-call by average execution time per function +;;; :cons-per-call by average consing per function +;;; :time same as :percent-time +;;; :cons same as :percent-cons +;;; +;;; REPORT &key (names :all) [Function] +;;; (nested :exclusive) +;;; (threshold 0.01) +;;; (sort-key :percent-time) +;;; (ignore-no-calls nil) +;;; +;;; Same as REPORT-MONITORING but we use a nicer keyword interface. +;;; +;;; DISPLAY-MONITORING-RESULTS &optional (threshold 0.01) [Function] +;;; (key :percent-time) +;;; Prints a table showing for each named function: +;;; - the total CPU time used in that function for all calls +;;; - the total number of bytes consed in that function for all calls +;;; - the total number of calls +;;; - the average amount of CPU time per call +;;; - the average amount of consing per call +;;; - the percent of total execution time spent executing that function +;;; - the percent of total consing spent consing in that function +;;; Summary totals of the CPU time, consing, and calls columns are printed. +;;; An estimate of the monitoring overhead is also printed. May be run +;;; even after unmonitoring all the functions, to play with the data. +;;; +;;; SAMPLE TABLE: +#| + Cons + % % Per Total Total +Function Time Cons Calls Sec/Call Call Time Cons +---------------------------------------------------------------------- +FIND-ROLE: 0.58 0.00 136 0.003521 0 0.478863 0 +GROUP-ROLE: 0.35 0.00 365 0.000802 0 0.292760 0 +GROUP-PROJECTOR: 0.05 0.00 102 0.000408 0 0.041648 0 +FEATURE-P: 0.02 0.00 570 0.000028 0 0.015680 0 +---------------------------------------------------------------------- +TOTAL: 1173 0.828950 0 +Estimated total monitoring overhead: 0.88 seconds +|# + +;;; **************************************************************** +;;; METERING ******************************************************* +;;; **************************************************************** + +;;; ******************************** +;;; Warn people using the wrong Lisp +;;; ******************************** + +#-(or clisp openmcl) +(warn "metering.lisp does not support your Lisp implementation!") + +;;; ******************************** +;;; Packages *********************** +;;; ******************************** + +;;; For CLtL2 compatible lisps + +(defpackage "MONITOR" (:nicknames "MON") (:use "COMMON-LISP") + (:export "*MONITORED-FUNCTIONS*" + "MONITOR" "MONITOR-ALL" "UNMONITOR" "MONITOR-FORM" + "WITH-MONITORING" + "RESET-MONITORING-INFO" "RESET-ALL-MONITORING" + "MONITORED" + "REPORT-MONITORING" + "DISPLAY-MONITORING-RESULTS" + "MONITORING-ENCAPSULATE" "MONITORING-UNENCAPSULATE" + "REPORT")) +(in-package "MONITOR") + +;;; Warn user if they're loading the source instead of compiling it first. +(eval-when (eval) + (warn "This file should be compiled before loading for best results.")) + +;;; ******************************** +;;; Version ************************ +;;; ******************************** + +(defparameter *metering-version* "v2.1 25-JAN-94" + "Current version number/date for Metering.") + + +;;; **************************************************************** +;;; Implementation Dependent Definitions *************************** +;;; **************************************************************** + +;;; ******************************** +;;; Timing Functions *************** +;;; ******************************** +;;; The get-time function is called to find the total number of ticks since +;;; the beginning of time. time-units-per-second allows us to convert units +;;; to seconds. + +#-(or clisp openmcl) +(eval-when (compile eval) + (warn + "You may want to supply implementation-specific get-time functions.")) + +(defconstant time-units-per-second internal-time-units-per-second) + +#+openmcl +(progn + (deftype time-type () 'unsigned-byte) + (deftype consing-type () 'unsigned-byte)) + +(defmacro get-time () + `(the time-type (get-internal-run-time))) + +;;; NOTE: In Macintosh Common Lisp, CCL::GCTIME returns the number of +;;; milliseconds spent during GC. We could subtract this from +;;; the value returned by get-internal-run-time to eliminate +;;; the effect of GC on the timing values, but we prefer to let +;;; the user run without GC on. If the application is so big that +;;; it requires GC to complete, then the GC times are part of the +;;; cost of doing business, and will average out in the long run. +;;; If it seems really important to a user that GC times not be +;;; counted, then uncomment the following three lines and read-time +;;; conditionalize the definition of get-time above with #-:openmcl. +;#+openmcl +;(defmacro get-time () +; `(the time-type (- (get-internal-run-time) (ccl:gctime)))) + +;;; ******************************** +;;; Consing Functions ************** +;;; ******************************** +;;; The get-cons macro is called to find the total number of bytes +;;; consed since the beginning of time. + +#+clisp +(defun get-cons () + (multiple-value-bind (real1 real2 run1 run2 gc1 gc2 space1 space2 gccount) + (sys::%%time) + (declare (ignore real1 real2 run1 run2 gc1 gc2 gccount)) + (dpb space1 (byte 24 24) space2))) + +;;; Macintosh Common Lisp 2.0 +;;; Note that this includes bytes that were allocated during GC. +;;; We could subtract this out by advising GC like we did under +;;; MCL 1.3.2, but I'd rather users ran without GC. If they can't +;;; run without GC, then the bytes consed during GC are a cost of +;;; running their program. Metering the code a few times will +;;; avoid the consing values being too lopsided. If a user really really +;;; wants to subtract out the consing during GC, replace the following +;;; two lines with the commented out code. +#+openmcl +(defmacro get-cons () `(the consing-type (ccl::total-bytes-allocated))) +;; #+openmcl +;; (progn +;; (in-package :ccl) +;; (defvar *bytes-consed-chkpt* 0) +;; (defun reset-consing () (setq *bytes-consed-chkpt* 0)) +;; (let ((old-gc (symbol-function 'gc)) +;; (ccl:*warn-if-redefine-kernel* nil)) +;; (setf (symbol-function 'gc) +;; #'(lambda () +;; (let ((old-consing (total-bytes-consed))) +;; (prog1 +;; (funcall old-gc) +;; (incf *bytes-consed-chkpt* +;; (- old-consing (total-bytes-consed)))))))) +;; (defun total-bytes-consed () +;; "Returns number of conses (8 bytes each)" +;; (ccl::total-bytes-allocated)) +;; (in-package "MONITOR") +;; (defun get-cons () +;; (the consing-type (+ (ccl::total-bytes-consed) ccl::*bytes-consed-chkpt*)))) + + +#-(or clisp openmcl) +(progn + (eval-when (compile eval) + (warn "No consing will be reported unless a get-cons function is ~ + defined.")) + + (defmacro get-cons () '(the consing-type 0))) + +;; actually, neither `get-cons' nor `get-time' are used as is, +;; but only in the following macro `with-time/cons' +#-:clisp +(defmacro with-time/cons ((delta-time delta-cons) form &body post-process) + (let ((start-cons (gensym "START-CONS-")) + (start-time (gensym "START-TIME-"))) + `(let ((,start-time (get-time)) (,start-cons (get-cons))) + (declare (type time-type ,start-time) + (type consing-type ,start-cons)) + (multiple-value-prog1 ,form + (let ((,delta-time (- (get-time) ,start-time)) + (,delta-cons (- (get-cons) ,start-cons))) + ,@post-process))))) + +#+clisp +(progn + (defmacro delta4 (nv1 nv2 ov1 ov2 by) + `(- (dpb (- ,nv1 ,ov1) (byte ,by ,by) ,nv2) ,ov2)) + + (let ((del (find-symbol "DELTA4" "SYS"))) + (when del (setf (fdefinition 'delta4) (fdefinition del)))) + + (if (< internal-time-units-per-second 1000000) + ;; TIME_1: AMIGA, OS/2, UNIX_TIMES + (defmacro delta4-time (new-time1 new-time2 old-time1 old-time2) + `(delta4 ,new-time1 ,new-time2 ,old-time1 ,old-time2 16)) + ;; TIME_2: other UNIX, WIN32 + (defmacro delta4-time (new-time1 new-time2 old-time1 old-time2) + `(+ (* (- ,new-time1 ,old-time1) internal-time-units-per-second) + (- ,new-time2 ,old-time2)))) + + (defmacro delta4-cons (new-cons1 new-cons2 old-cons1 old-cons2) + `(delta4 ,new-cons1 ,new-cons2 ,old-cons1 ,old-cons2 24)) + + ;; avoid consing: when the application conses a lot, + ;; get-cons may return a bignum, so we really should not use it. + (defmacro with-time/cons ((delta-time delta-cons) form &body post-process) + (let ((beg-cons1 (gensym "BEG-CONS1-")) (end-cons1 (gensym "END-CONS1-")) + (beg-cons2 (gensym "BEG-CONS2-")) (end-cons2 (gensym "END-CONS2-")) + (beg-time1 (gensym "BEG-TIME1-")) (end-time1 (gensym "END-TIME1-")) + (beg-time2 (gensym "BEG-TIME2-")) (end-time2 (gensym "END-TIME2-")) + (re1 (gensym)) (re2 (gensym)) (gc1 (gensym)) (gc2 (gensym))) + `(multiple-value-bind (,re1 ,re2 ,beg-time1 ,beg-time2 + ,gc1 ,gc2 ,beg-cons1 ,beg-cons2) (sys::%%time) + (declare (ignore ,re1 ,re2 ,gc1 ,gc2)) + (multiple-value-prog1 ,form + (multiple-value-bind (,re1 ,re2 ,end-time1 ,end-time2 + ,gc1 ,gc2 ,end-cons1 ,end-cons2) (sys::%%time) + (declare (ignore ,re1 ,re2 ,gc1 ,gc2)) + (let ((,delta-time (delta4-time ,end-time1 ,end-time2 + ,beg-time1 ,beg-time2)) + (,delta-cons (delta4-cons ,end-cons1 ,end-cons2 + ,beg-cons1 ,beg-cons2))) + ,@post-process))))))) + +;;; ******************************** +;;; Required Arguments ************* +;;; ******************************** +;;; +;;; Required (Fixed) vs Optional Args +;;; +;;; To avoid unnecessary consing in the "encapsulation" code, we find out the +;;; number of required arguments, and use &rest to capture only non-required +;;; arguments. The function Required-Arguments returns two values: the first +;;; is the number of required arguments, and the second is T iff there are any +;;; non-required arguments (e.g. &optional, &rest, &key). + +;;; Lucid, Allegro, and Macintosh Common Lisp +#+openmcl +(defun required-arguments (name) + (let* ((function (symbol-function name)) + (args (ccl:arglist function)) + (pos (position-if #'(lambda (x) + (and (symbolp x) + (let ((name (symbol-name x))) + (and (>= (length name) 1) + (char= (schar name 0) + #\&))))) + args))) + (if pos + (values pos t) + (values (length args) nil)))) + +#+clisp +(defun required-arguments (name) + (multiple-value-bind (name req-num opt-num rest-p key-p keywords allow-p) + (sys::function-signature name t) + (if name ; no error + (values req-num (or (/= 0 opt-num) rest-p key-p keywords allow-p)) + (values 0 t)))) + +#-(or clisp openmcl) +(progn + (eval-when (compile eval) + (warn + "You may want to add an implementation-specific Required-Arguments function.")) + (eval-when (load eval) + (defun required-arguments (name) + (declare (ignore name)) + (values 0 t)))) + +#| +;;;Examples +(defun square (x) (* x x)) +(defun square2 (x &optional y) (* x x y)) +(defun test (x y &optional (z 3)) 3) +(defun test2 (x y &optional (z 3) &rest fred) 3) + +(required-arguments 'square) => 1 nil +(required-arguments 'square2) => 1 t +(required-arguments 'test) => 2 t +(required-arguments 'test2) => 2 t +|# + + +;;; **************************************************************** +;;; Main METERING Code ********************************************* +;;; **************************************************************** + +;;; ******************************** +;;; Global Variables *************** +;;; ******************************** +(defvar *MONITOR-TIME-OVERHEAD* nil + "The amount of time an empty monitored function costs.") +(defvar *MONITOR-CONS-OVERHEAD* nil + "The amount of cons an empty monitored function costs.") + +(defvar *TOTAL-TIME* 0 + "Total amount of time monitored so far.") +(defvar *TOTAL-CONS* 0 + "Total amount of consing monitored so far.") +(defvar *TOTAL-CALLS* 0 + "Total number of calls monitored so far.") +(proclaim '(type time-type *total-time*)) +(proclaim '(type consing-type *total-cons*)) +(proclaim '(fixnum *total-calls*)) + +;;; ******************************** +;;; Accessor Functions ************* +;;; ******************************** +;;; Perhaps the SYMBOLP should be FBOUNDP? I.e., what about variables +;;; containing closures. +(defmacro PLACE-FUNCTION (function-place) + "Return the function found at FUNCTION-PLACE. Evals FUNCTION-PLACE +if it isn't a symbol, to allow monitoring of closures located in +variables/arrays/structures." + ;; Note that (fboundp 'fdefinition) returns T even if fdefinition + ;; is a macro, which is what we want. + (if (fboundp 'fdefinition) + `(if (fboundp ,function-place) + (fdefinition ,function-place) + (eval ,function-place)) + `(if (symbolp ,function-place) + (symbol-function ,function-place) + (eval ,function-place)))) + +(defsetf PLACE-FUNCTION (function-place) (function) + "Set the function in FUNCTION-PLACE to FUNCTION." + (if (fboundp 'fdefinition) + ;; If we're conforming to CLtL2, use fdefinition here. + `(if (fboundp ,function-place) + (setf (fdefinition ,function-place) ,function) + (eval '(setf ,function-place ',function))) + `(if (symbolp ,function-place) + (setf (symbol-function ,function-place) ,function) + (eval '(setf ,function-place ',function))))) + +#| +;;; before using fdefinition +(defun PLACE-FUNCTION (function-place) + "Return the function found at FUNCTION-PLACE. Evals FUNCTION-PLACE +if it isn't a symbol, to allow monitoring of closures located in +variables/arrays/structures." + (if (symbolp function-place) + (symbol-function function-place) + (eval function-place))) + +(defsetf PLACE-FUNCTION (function-place) (function) + "Set the function in FUNCTION-PLACE to FUNCTION." + `(if (symbolp ,function-place) + (setf (symbol-function ,function-place) ,function) + (eval '(setf ,function-place ',function)))) +|# + +(defun PLACE-FBOUNDP (function-place) + "Test to see if FUNCTION-PLACE is a function." + ;; probably should be + #|(or (and (symbolp function-place)(fboundp function-place)) + (functionp (place-function function-place)))|# + (if (symbolp function-place) + (fboundp function-place) + (functionp (place-function function-place)))) + +(defun PLACE-MACROP (function-place) + "Test to see if FUNCTION-PLACE is a macro." + (when (symbolp function-place) + (macro-function function-place))) + +;;; ******************************** +;;; Measurement Tables ************* +;;; ******************************** +(defvar *monitored-functions* nil + "List of monitored symbols.") + +;;; We associate a METERING-FUNCTIONS structure with each monitored function +;;; name or other closure. This holds the functions that we call to manipulate +;;; the closure which implements the encapsulation. +;;; +(defstruct metering-functions + (name nil) + (old-definition nil :type function) + (new-definition nil :type function) + (read-metering nil :type function) + (reset-metering nil :type function)) + +;;; In general using hash tables in time-critical programs is a bad idea, +;;; because when one has to grow the table and rehash everything, the +;;; timing becomes grossly inaccurate. In this case it is not an issue +;;; because all inserting of entries in the hash table occurs before the +;;; timing commences. The only circumstance in which this could be a +;;; problem is if the lisp rehashes on the next reference to the table, +;;; instead of when the entry which forces a rehash was inserted. +;;; +;;; Note that a similar kind of problem can occur with GC, which is why +;;; one should turn off GC when monitoring code. +;;; +(defvar *monitor* (make-hash-table :test #'equal) + "Hash table in which METERING-FUNCTIONS structures are stored.") +(defun get-monitor-info (name) + (gethash name *monitor*)) +(defsetf get-monitor-info (name) (info) + `(setf (gethash ,name *monitor*) ,info)) + +(defun MONITORED (function-place) + "Test to see if a FUNCTION-PLACE is monitored." + (and (place-fboundp function-place) ; this line necessary? + (get-monitor-info function-place))) + +(defun reset-monitoring-info (name) + "Reset the monitoring info for the specified function." + (let ((finfo (get-monitor-info name))) + (when finfo + (funcall (metering-functions-reset-metering finfo))))) +(defun reset-all-monitoring () + "Reset monitoring info for all functions." + (setq *total-time* 0 + *total-cons* 0 + *total-calls* 0) + (dolist (symbol *monitored-functions*) + (when (monitored symbol) + (reset-monitoring-info symbol)))) + +(defun monitor-info-values (name &optional (nested :exclusive) warn) + "Returns monitoring information values for the named function, +adjusted for overhead." + (let ((finfo (get-monitor-info name))) + (if finfo + (multiple-value-bind (inclusive-time inclusive-cons + exclusive-time exclusive-cons + calls nested-calls) + (funcall (metering-functions-read-metering finfo)) + (unless (or (null warn) + (eq (place-function name) + (metering-functions-new-definition finfo))) + (warn "Funtion ~S has been redefined, so times may be inaccurate.~@ + MONITOR it again to record calls to the new definition." + name)) + (case nested + (:exclusive (values calls + nested-calls + (- exclusive-time + (* calls *monitor-time-overhead*)) + (- exclusive-cons + (* calls *monitor-cons-overhead*)))) + ;; In :inclusive mode, subtract overhead for all the + ;; called functions as well. Nested-calls includes the + ;; calls of the function as well. [Necessary 'cause of + ;; functions which call themselves recursively.] + (:inclusive (values calls + nested-calls + (- inclusive-time + (* nested-calls ;(+ calls) + *monitor-time-overhead*)) + (- inclusive-cons + (* nested-calls ;(+ calls) + *monitor-cons-overhead*)))))) + (values 0 0 0 0)))) + +;;; ******************************** +;;; Encapsulate ******************** +;;; ******************************** +(eval-when (compile load eval) +;; Returns a lambda expression for a function that, when called with the +;; function name, will set up that function for metering. +;; +;; A function is monitored by replacing its definition with a closure +;; created by the following function. The closure records the monitoring +;; data, and updates the data with each call of the function. +;; +;; Other closures are used to read and reset the data. +(defun make-monitoring-encapsulation (min-args optionals-p) + (let (required-args) + (dotimes (i min-args) (push (gensym) required-args)) + `(lambda (name) + (let ((inclusive-time 0) + (inclusive-cons 0) + (exclusive-time 0) + (exclusive-cons 0) + (calls 0) + (nested-calls 0) + (old-definition (place-function name))) + (declare (type time-type inclusive-time) + (type time-type exclusive-time) + (type consing-type inclusive-cons) + (type consing-type exclusive-cons) + (fixnum calls) + (fixnum nested-calls)) + (pushnew name *monitored-functions*) + + (setf (place-function name) + #'(lambda (,@required-args + ,@(when optionals-p + `(&rest optional-args))) + (let ((prev-total-time *total-time*) + (prev-total-cons *total-cons*) + (prev-total-calls *total-calls*) + ;; (old-time inclusive-time) + ;; (old-cons inclusive-cons) + ;; (old-nested-calls nested-calls) + ) + (declare (type time-type prev-total-time) + (type consing-type prev-total-cons) + (fixnum prev-total-calls)) + (with-time/cons (delta-time delta-cons) + ;; form + ,(if optionals-p + `(apply old-definition + ,@required-args optional-args) + `(funcall old-definition ,@required-args)) + ;; post-processing: + ;; Calls + (incf calls) + (incf *total-calls*) + ;; nested-calls includes this call + (incf nested-calls (the fixnum + (- *total-calls* + prev-total-calls))) + ;; (setf nested-calls (+ old-nested-calls + ;; (- *total-calls* + ;; prev-total-calls))) + ;; Time + ;; Problem with inclusive time is that it + ;; currently doesn't add values from recursive + ;; calls to the same function. Change the + ;; setf to an incf to fix this? + (incf inclusive-time (the time-type delta-time)) + ;; (setf inclusive-time (+ delta-time old-time)) + (incf exclusive-time (the time-type + (+ delta-time + (- prev-total-time + *total-time*)))) + (setf *total-time* (the time-type + (+ delta-time + prev-total-time))) + ;; Consing + (incf inclusive-cons (the consing-type delta-cons)) + ;; (setf inclusive-cons (+ delta-cons old-cons)) + (incf exclusive-cons (the consing-type + (+ delta-cons + (- prev-total-cons + *total-cons*)))) + (setf *total-cons* + (the consing-type + (+ delta-cons prev-total-cons))))))) + (setf (get-monitor-info name) + (make-metering-functions + :name name + :old-definition old-definition + :new-definition (place-function name) + :read-metering #'(lambda () + (values inclusive-time + inclusive-cons + exclusive-time + exclusive-cons + calls + nested-calls)) + :reset-metering #'(lambda () + (setq inclusive-time 0 + inclusive-cons 0 + exclusive-time 0 + exclusive-cons 0 + calls 0 + nested-calls 0) + t))))))) +);; End of EVAL-WHEN + +;;; For efficiency reasons, we precompute the encapsulation functions +;;; for a variety of combinations of argument structures +;;; (min-args . optional-p). These are stored in the following hash table +;;; along with any new ones we encounter. Since we're now precomputing +;;; closure functions for common argument signatures, this eliminates +;;; the former need to call COMPILE for each monitored function. +(eval-when (compile eval) + (defconstant precomputed-encapsulations 8)) + +(defvar *existing-encapsulations* (make-hash-table :test #'equal)) +(defun find-encapsulation (min-args optionals-p) + (or (gethash (cons min-args optionals-p) *existing-encapsulations*) + (setf (gethash (cons min-args optionals-p) *existing-encapsulations*) + (compile nil + (make-monitoring-encapsulation min-args optionals-p))))) + +(macrolet ((frob () + (let ((res ())) + (dotimes (i precomputed-encapsulations) + (push `(setf (gethash '(,i . nil) *existing-encapsulations*) + #',(make-monitoring-encapsulation i nil)) + res) + (push `(setf (gethash '(,i . t) *existing-encapsulations*) + #',(make-monitoring-encapsulation i t)) + res)) + `(progn ,@res)))) + (frob)) + +(defun monitoring-encapsulate (name &optional warn) + "Monitor the function Name. If already monitored, unmonitor first." + ;; Saves the current definition of name and inserts a new function which + ;; returns the result of evaluating body. + (cond ((not (place-fboundp name)) ; not a function + (when warn + (warn "Ignoring undefined function ~S." name))) + ((place-macrop name) ; a macro + (when warn + (warn "Ignoring macro ~S." name))) + (t ; tis a function + (when (get-monitor-info name) ; monitored + (when warn + (warn "~S already monitored, so unmonitoring it first." name)) + (monitoring-unencapsulate name)) + (multiple-value-bind (min-args optionals-p) + (required-arguments name) + (funcall (find-encapsulation min-args optionals-p) name))))) + +(defun monitoring-unencapsulate (name &optional warn) + "Removes monitoring encapsulation code from around Name." + (let ((finfo (get-monitor-info name))) + (when finfo ; monitored + (remprop name 'metering-functions) + (setq *monitored-functions* + (remove name *monitored-functions* :test #'equal)) + (if (eq (place-function name) + (metering-functions-new-definition finfo)) + (setf (place-function name) + (metering-functions-old-definition finfo)) + (when warn + (warn "Preserving current definition of redefined function ~S." + name)))))) + +;;; ******************************** +;;; Main Monitoring Functions ****** +;;; ******************************** +(defmacro MONITOR (&rest names) + "Monitor the named functions. As in TRACE, the names are not evaluated. + If a function is already monitored, then unmonitor and remonitor (useful + to notice function redefinition). If a name is undefined, give a warning + and ignore it. See also unmonitor, report-monitoring, + display-monitoring-results and reset-time." + `(progn + ,@(mapcar #'(lambda (name) `(monitoring-encapsulate ',name)) names) + *monitored-functions*)) + +(defmacro UNMONITOR (&rest names) + "Remove the monitoring on the named functions. + Names defaults to the list of all currently monitored functions." + `(dolist (name ,(if names `',names '*monitored-functions*) (values)) + (monitoring-unencapsulate name))) + +(defun MONITOR-ALL (&optional (package *package*)) + "Monitor all functions in the specified package." + (let ((package (if (packagep package) + package + (find-package package)))) + (do-symbols (symbol package) + (when (eq (symbol-package symbol) package) + (monitoring-encapsulate symbol))))) + +(defmacro MONITOR-FORM (form + &optional (nested :exclusive) (threshold 0.01) + (key :percent-time)) + "Monitor the execution of all functions in the current package +during the execution of FORM. All functions that are executed above +THRESHOLD % will be reported." + `(unwind-protect + (progn + (monitor-all) + (reset-all-monitoring) + (prog1 + (time ,form) + (report-monitoring :all ,nested ,threshold ,key :ignore-no-calls))) + (unmonitor))) + +(defmacro WITH-MONITORING ((&rest functions) + (&optional (nested :exclusive) + (threshold 0.01) + (key :percent-time)) + &body body) + "Monitor the specified functions during the execution of the body." + `(unwind-protect + (progn + (dolist (fun ',functions) + (monitoring-encapsulate fun)) + (reset-all-monitoring) + ,@body + (report-monitoring :all ,nested ,threshold ,key)) + (unmonitor))) + +;;; ******************************** +;;; Overhead Calculations ********** +;;; ******************************** +(defconstant overhead-iterations 5000 + "Number of iterations over which the timing overhead is averaged.") + +;;; Perhaps this should return something to frustrate clever compilers. +(defun STUB-FUNCTION (x) + (declare (ignore x)) + nil) +(proclaim '(notinline stub-function)) + +(defun SET-MONITOR-OVERHEAD () + "Determines the average overhead of monitoring by monitoring the execution +of an empty function many times." + (setq *monitor-time-overhead* 0 + *monitor-cons-overhead* 0) + (stub-function nil) + (monitor stub-function) + (reset-all-monitoring) + (let ((overhead-function (symbol-function 'stub-function))) + (dotimes (x overhead-iterations) + (funcall overhead-function overhead-function))) +; (dotimes (x overhead-iterations) +; (stub-function nil)) + (let ((fiter (float overhead-iterations))) + (multiple-value-bind (calls nested-calls time cons) + (monitor-info-values 'stub-function) + (declare (ignore calls nested-calls)) + (setq *monitor-time-overhead* (/ time fiter) + *monitor-cons-overhead* (/ cons fiter)))) + (unmonitor stub-function)) +(set-monitor-overhead) + +;;; ******************************** +;;; Report Data ******************** +;;; ******************************** +(defvar *monitor-results* nil + "A table of monitoring statistics is stored here.") +(defvar *no-calls* nil + "A list of monitored functions which weren't called.") +(defvar *estimated-total-overhead* 0) +;; (proclaim '(type time-type *estimated-total-overhead*)) + +(defstruct (monitoring-info + (:conc-name m-info-) + (:constructor make-monitoring-info + (name calls time cons + percent-time percent-cons + time-per-call cons-per-call))) + name + calls + time + cons + percent-time + percent-cons + time-per-call + cons-per-call) + +(defun REPORT (&key (names :all) + (nested :exclusive) + (threshold 0.01) + (sort-key :percent-time) + (ignore-no-calls nil)) + "Same as REPORT-MONITORING but with a nicer keyword interface" + (declare (type (member :function :percent-time :time :percent-cons + :cons :calls :time-per-call :cons-per-call) + sort-key) + (type (member :inclusive :exclusive) nested)) + (report-monitoring names nested threshold sort-key ignore-no-calls)) + +(defun REPORT-MONITORING (&optional names + (nested :exclusive) + (threshold 0.01) + (key :percent-time) + ignore-no-calls) + "Report the current monitoring state. +The percentage of the total time spent executing unmonitored code +in each function (:exclusive mode), or total time (:inclusive mode) +will be printed together with the number of calls and +the unmonitored time per call. Functions that have been executed +below THRESHOLD % of the time will not be reported. To report on all +functions set NAMES to be either NIL or :ALL." + (when (or (null names) (eq names :all)) (setq names *monitored-functions*)) + + (let ((total-time 0) + (total-cons 0) + (total-calls 0)) + ;; Compute overall time and consing. + (dolist (name names) + (multiple-value-bind (calls nested-calls time cons) + (monitor-info-values name nested :warn) + (declare (ignore nested-calls)) + (incf total-calls calls) + (incf total-time time) + (incf total-cons cons))) + ;; Total overhead. + (setq *estimated-total-overhead* + (/ (* *monitor-time-overhead* total-calls) + time-units-per-second)) + ;; Assemble data for only the specified names (all monitored functions) + (if (zerop total-time) + (format *trace-output* "Not enough execution time to monitor.") + (progn + (setq *monitor-results* nil *no-calls* nil) + (dolist (name names) + (multiple-value-bind (calls nested-calls time cons) + (monitor-info-values name nested) + (declare (ignore nested-calls)) + (when (minusp time) (setq time 0.0)) + (when (minusp cons) (setq cons 0.0)) + (if (zerop calls) + (push (if (symbolp name) + (symbol-name name) + (format nil "~S" name)) + *no-calls*) + (push (make-monitoring-info + (format nil "~S" name) ; name + calls ; calls + (/ time (float time-units-per-second)) ; time in secs + (round cons) ; consing + (/ time (float total-time)) ; percent-time + (if (zerop total-cons) 0 + (/ cons (float total-cons))) ; percent-cons + (/ (/ time (float calls)) ; time-per-call + time-units-per-second) ; sec/call + (round (/ cons (float calls)))) ; cons-per-call + *monitor-results*)))) + (display-monitoring-results threshold key ignore-no-calls))))) + +(defun display-monitoring-results (&optional (threshold 0.01) (key :percent-time) + (ignore-no-calls t)) + (let ((max-length 8) ; Function header size + (max-cons-length 8) + (total-time 0.0) + (total-consed 0) + (total-calls 0) + (total-percent-time 0) + (total-percent-cons 0)) + (sort-results key) + (dolist (result *monitor-results*) + (when (or (zerop threshold) + (> (m-info-percent-time result) threshold)) + (setq max-length + (max max-length + (length (m-info-name result)))) + (setq max-cons-length + (max max-cons-length + (m-info-cons-per-call result))))) + (incf max-length 2) + (setf max-cons-length (+ 2 (ceiling (log max-cons-length 10)))) + (format *trace-output* + "~%~%~ + ~VT ~VA~ + ~% ~VT % % ~VA Total Total~ + ~%Function~VT Time Cons Calls Sec/Call ~VA Time Cons~ + ~%~V,,,'-A" + max-length + max-cons-length "Cons" + max-length + max-cons-length "Per" + max-length + max-cons-length "Call" + (+ max-length 62 (max 0 (- max-cons-length 5))) "-") + (dolist (result *monitor-results*) + (when (or (zerop threshold) + (> (m-info-percent-time result) threshold)) + (format *trace-output* + "~%~A:~VT~6,2F ~6,2F ~7D ~,6F ~VD ~8,3F ~10D" + (m-info-name result) + max-length + (* 100 (m-info-percent-time result)) + (* 100 (m-info-percent-cons result)) + (m-info-calls result) + (m-info-time-per-call result) + max-cons-length + (m-info-cons-per-call result) + (m-info-time result) + (m-info-cons result)) + (incf total-time (m-info-time result)) + (incf total-consed (m-info-cons result)) + (incf total-calls (m-info-calls result)) + (incf total-percent-time (m-info-percent-time result)) + (incf total-percent-cons (m-info-percent-cons result)))) + (format *trace-output* + "~%~V,,,'-A~ + ~%TOTAL:~VT~6,2F ~6,2F ~7D ~9@T ~VA ~8,3F ~10D~ + ~%Estimated monitoring overhead: ~5,2F seconds~ + ~%Estimated total monitoring overhead: ~5,2F seconds" + (+ max-length 62 (max 0 (- max-cons-length 5))) "-" + max-length + (* 100 total-percent-time) + (* 100 total-percent-cons) + total-calls + max-cons-length " " + total-time total-consed + (/ (* *monitor-time-overhead* total-calls) + time-units-per-second) + *estimated-total-overhead*) + (when (and (not ignore-no-calls) *no-calls*) + (setq *no-calls* (sort *no-calls* #'string<)) + (let ((num-no-calls (length *no-calls*))) + (if (> num-no-calls 20) + (format *trace-output* + "~%~@(~r~) monitored functions were not called. ~ + ~%See the variable mon::*no-calls* for a list." + num-no-calls) + (format *trace-output* + "~%The following monitored functions were not called:~ + ~%~{~<~%~:; ~A~>~}~%" + *no-calls*)))) + (values))) + +(defun sort-results (&optional (key :percent-time)) + (setq *monitor-results* + (case key + (:function (sort *monitor-results* #'string> + :key #'m-info-name)) + ((:percent-time :time) (sort *monitor-results* #'> + :key #'m-info-time)) + ((:percent-cons :cons) (sort *monitor-results* #'> + :key #'m-info-cons)) + (:calls (sort *monitor-results* #'> + :key #'m-info-calls)) + (:time-per-call (sort *monitor-results* #'> + :key #'m-info-time-per-call)) + (:cons-per-call (sort *monitor-results* #'> + :key #'m-info-cons-per-call))))) + +;;; *END OF FILE* + + diff -r e0f13b88e80e -r c4d3b4507707 vim/bundle/slimv/ftplugin/slimv-clhs.vim --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vim/bundle/slimv/ftplugin/slimv-clhs.vim Fri Nov 12 18:30:35 2010 -0500 @@ -0,0 +1,2236 @@ +" slimv-clhs.vim: +" Common Lisp Hyperspec lookup support for Slimv +" Version: 0.5.0 +" Last Change: 14 Apr 2009 +" Maintainer: Tamas Kovacs +" License: This file is placed in the public domain. +" No warranty, express or implied. +" *** *** Use At-Your-Own-Risk! *** *** +" Commentary: This file is based on SLIME's hyperspec.el created by +" Erik Naggum (http://common-lisp.net/project/slime/), +" and the cl-lookup package made by Yuji Minejima +" (http://homepage1.nifty.com/bmonkey/lisp/index-en.html). +" +" ===================================================================== +" +" Load Once: +if &cp || exists( 'g:slimv_clhs_loaded' ) + finish +endif + +let g:slimv_clhs_loaded = 1 + +" It is possible to lookup the following information: +" symbol , e.g. "setf" +" hyperspec-chapters , e.g. [index], [syntax] +" format-control-characters , e.g. "~C: Character", "~%: Newline" +" reader-macro-characters , e.g. "(", "#'", "#b", "#+" +" loop , e.g. loop:with, loop:collect +" arguments , e.g. :test, :key, :eof-error-p +" glossary , e.g. {absolute}, {binding} + +" Root of the Common Lisp Hyperspec +if !exists( 'g:slimv_clhs_root' ) + let g:slimv_clhs_root = 'http://www.lispworks.com/reference/HyperSpec/Body/' +endif + +if !exists( 'g:slimv_clhs_clhs' ) + let g:slimv_clhs_clhs = [ + \["&allow-other-keys", "03_da.htm"], + \["&aux", "03_da.htm"], + \["&body", "03_dd.htm"], + \["&environment", "03_dd.htm"], + \["&key", "03_da.htm"], + \["&optional", "03_da.htm"], + \["&rest", "03_da.htm"], + \["&whole", "03_dd.htm"], + \["*", "a_st.htm"], + \["**", "v__stst_.htm"], + \["***", "v__stst_.htm"], + \["*break-on-signals*", "v_break_.htm"], + \["*compile-file-pathname*", "v_cmp_fi.htm"], + \["*compile-file-truename*", "v_cmp_fi.htm"], + \["*compile-print*", "v_cmp_pr.htm"], + \["*compile-verbose*", "v_cmp_pr.htm"], + \["*debug-io*", "v_debug_.htm"], + \["*debugger-hook*", "v_debugg.htm"], + \["*default-pathname-defaults*", "v_defaul.htm"], + \["*error-output*", "v_debug_.htm"], + \["*features*", "v_featur.htm"], + \["*gensym-counter*", "v_gensym.htm"], + \["*load-pathname*", "v_ld_pns.htm"], + \["*load-print*", "v_ld_prs.htm"], + \["*load-truename*", "v_ld_pns.htm"], + \["*load-verbose*", "v_ld_prs.htm"], + \["*macroexpand-hook*", "v_mexp_h.htm"], + \["*modules*", "v_module.htm"], + \["*package*", "v_pkg.htm"], + \["*print-array*", "v_pr_ar.htm"], + \["*print-base*", "v_pr_bas.htm"], + \["*print-case*", "v_pr_cas.htm"], + \["*print-circle*", "v_pr_cir.htm"], + \["*print-escape*", "v_pr_esc.htm"], + \["*print-gensym*", "v_pr_gen.htm"], + \["*print-length*", "v_pr_lev.htm"], + \["*print-level*", "v_pr_lev.htm"], + \["*print-lines*", "v_pr_lin.htm"], + \["*print-miser-width*", "v_pr_mis.htm"], + \["*print-pprint-dispatch*", "v_pr_ppr.htm"], + \["*print-pretty*", "v_pr_pre.htm"], + \["*print-radix*", "v_pr_bas.htm"], + \["*print-readably*", "v_pr_rda.htm"], + \["*print-right-margin*", "v_pr_rig.htm"], + \["*query-io*", "v_debug_.htm"], + \["*random-state*", "v_rnd_st.htm"], + \["*read-base*", "v_rd_bas.htm"], + \["*read-default-float-format*", "v_rd_def.htm"], + \["*read-eval*", "v_rd_eva.htm"], + \["*read-suppress*", "v_rd_sup.htm"], + \["*readtable*", "v_rdtabl.htm"], + \["*standard-input*", "v_debug_.htm"], + \["*standard-output*", "v_debug_.htm"], + \["*terminal-io*", "v_termin.htm"], + \["*trace-output*", "v_debug_.htm"], + \["+", "a_pl.htm"], + \["++", "v_pl_plp.htm"], + \["+++", "v_pl_plp.htm"], + \["-", "a__.htm"], + \["/", "a_sl.htm"], + \["//", "v_sl_sls.htm"], + \["///", "v_sl_sls.htm"], + \["/=", "f_eq_sle.htm"], + \["1+", "f_1pl_1_.htm"], + \["1-", "f_1pl_1_.htm"], + \["<", "f_eq_sle.htm"], + \["<=", "f_eq_sle.htm"], + \["=", "f_eq_sle.htm"], + \[">", "f_eq_sle.htm"], + \[">=", "f_eq_sle.htm"], + \["abort", "a_abort.htm"], + \["abs", "f_abs.htm"], + \["acons", "f_acons.htm"], + \["acos", "f_asin_.htm"], + \["acosh", "f_sinh_.htm"], + \["add-method", "f_add_me.htm"], + \["adjoin", "f_adjoin.htm"], + \["adjust-array", "f_adjust.htm"], + \["adjustable-array-p", "f_adju_1.htm"], + \["allocate-instance", "f_alloca.htm"], + \["alpha-char-p", "f_alpha_.htm"], + \["alphanumericp", "f_alphan.htm"], + \["and", "a_and.htm"], + \["append", "f_append.htm"], + \["apply", "f_apply.htm"], + \["apropos", "f_apropo.htm"], + \["apropos-list", "f_apropo.htm"], + \["aref", "f_aref.htm"], + \["arithmetic-error", "e_arithm.htm"], + \["arithmetic-error-operands", "f_arithm.htm"], + \["arithmetic-error-operation", "f_arithm.htm"], + \["array", "t_array.htm"], + \["array-dimension", "f_ar_dim.htm"], + \["array-dimension-limit", "v_ar_dim.htm"], + \["array-dimensions", "f_ar_d_1.htm"], + \["array-displacement", "f_ar_dis.htm"], + \["array-element-type", "f_ar_ele.htm"], + \["array-has-fill-pointer-p", "f_ar_has.htm"], + \["array-in-bounds-p", "f_ar_in_.htm"], + \["array-rank", "f_ar_ran.htm"], + \["array-rank-limit", "v_ar_ran.htm"], + \["array-row-major-index", "f_ar_row.htm"], + \["array-total-size", "f_ar_tot.htm"], + \["array-total-size-limit", "v_ar_tot.htm"], + \["arrayp", "f_arrayp.htm"], + \["ash", "f_ash.htm"], + \["asin", "f_asin_.htm"], + \["asinh", "f_sinh_.htm"], + \["assert", "m_assert.htm"], + \["assoc", "f_assocc.htm"], + \["assoc-if", "f_assocc.htm"], + \["assoc-if-not", "f_assocc.htm"], + \["atan", "f_asin_.htm"], + \["atanh", "f_sinh_.htm"], + \["atom", "a_atom.htm"], + \["base-char", "t_base_c.htm"], + \["base-string", "t_base_s.htm"], + \["bignum", "t_bignum.htm"], + \["bit", "a_bit.htm"], + \["bit-and", "f_bt_and.htm"], + \["bit-andc1", "f_bt_and.htm"], + \["bit-andc2", "f_bt_and.htm"], + \["bit-eqv", "f_bt_and.htm"], + \["bit-ior", "f_bt_and.htm"], + \["bit-nand", "f_bt_and.htm"], + \["bit-nor", "f_bt_and.htm"], + \["bit-not", "f_bt_and.htm"], + \["bit-orc1", "f_bt_and.htm"], + \["bit-orc2", "f_bt_and.htm"], + \["bit-vector", "t_bt_vec.htm"], + \["bit-vector-p", "f_bt_vec.htm"], + \["bit-xor", "f_bt_and.htm"], + \["block", "s_block.htm"], + \["boole", "f_boole.htm"], + \["boole-1", "v_b_1_b.htm"], + \["boole-2", "v_b_1_b.htm"], + \["boole-and", "v_b_1_b.htm"], + \["boole-andc1", "v_b_1_b.htm"], + \["boole-andc2", "v_b_1_b.htm"], + \["boole-c1", "v_b_1_b.htm"], + \["boole-c2", "v_b_1_b.htm"], + \["boole-clr", "v_b_1_b.htm"], + \["boole-eqv", "v_b_1_b.htm"], + \["boole-ior", "v_b_1_b.htm"], + \["boole-nand", "v_b_1_b.htm"], + \["boole-nor", "v_b_1_b.htm"], + \["boole-orc1", "v_b_1_b.htm"], + \["boole-orc2", "v_b_1_b.htm"], + \["boole-set", "v_b_1_b.htm"], + \["boole-xor", "v_b_1_b.htm"], + \["boolean", "t_ban.htm"], + \["both-case-p", "f_upper_.htm"], + \["boundp", "f_boundp.htm"], + \["break", "f_break.htm"], + \["broadcast-stream", "t_broadc.htm"], + \["broadcast-stream-streams", "f_broadc.htm"], + \["built-in-class", "t_built_.htm"], + \["butlast", "f_butlas.htm"], + \["byte", "f_by_by.htm"], + \["byte-position", "f_by_by.htm"], + \["byte-size", "f_by_by.htm"], + \["caaaar", "f_car_c.htm"], + \["caaadr", "f_car_c.htm"], + \["caaar", "f_car_c.htm"], + \["caadar", "f_car_c.htm"], + \["caaddr", "f_car_c.htm"], + \["caadr", "f_car_c.htm"], + \["caar", "f_car_c.htm"], + \["cadaar", "f_car_c.htm"], + \["cadadr", "f_car_c.htm"], + \["cadar", "f_car_c.htm"], + \["caddar", "f_car_c.htm"], + \["cadddr", "f_car_c.htm"], + \["caddr", "f_car_c.htm"], + \["cadr", "f_car_c.htm"], + \["call-arguments-limit", "v_call_a.htm"], + \["call-method", "m_call_m.htm"], + \["call-next-method", "f_call_n.htm"], + \["car", "f_car_c.htm"], + \["case", "m_case_.htm"], + \["catch", "s_catch.htm"], + \["ccase", "m_case_.htm"], + \["cdaaar", "f_car_c.htm"], + \["cdaadr", "f_car_c.htm"], + \["cdaar", "f_car_c.htm"], + \["cdadar", "f_car_c.htm"], + \["cdaddr", "f_car_c.htm"], + \["cdadr", "f_car_c.htm"], + \["cdar", "f_car_c.htm"], + \["cddaar", "f_car_c.htm"], + \["cddadr", "f_car_c.htm"], + \["cddar", "f_car_c.htm"], + \["cdddar", "f_car_c.htm"], + \["cddddr", "f_car_c.htm"], + \["cdddr", "f_car_c.htm"], + \["cddr", "f_car_c.htm"], + \["cdr", "f_car_c.htm"], + \["ceiling", "f_floorc.htm"], + \["cell-error", "e_cell_e.htm"], + \["cell-error-name", "f_cell_e.htm"], + \["cerror", "f_cerror.htm"], + \["change-class", "f_chg_cl.htm"], + \["char", "f_char_.htm"], + \["char-code", "f_char_c.htm"], + \["char-code-limit", "v_char_c.htm"], + \["char-downcase", "f_char_u.htm"], + \["char-equal", "f_chareq.htm"], + \["char-greaterp", "f_chareq.htm"], + \["char-int", "f_char_i.htm"], + \["char-lessp", "f_chareq.htm"], + \["char-name", "f_char_n.htm"], + \["char-not-equal", "f_chareq.htm"], + \["char-not-greaterp", "f_chareq.htm"], + \["char-not-lessp", "f_chareq.htm"], + \["char-upcase", "f_char_u.htm"], + \["char/=", "f_chareq.htm"], + \["char<", "f_chareq.htm"], + \["char<=", "f_chareq.htm"], + \["char=", "f_chareq.htm"], + \["char>", "f_chareq.htm"], + \["char>=", "f_chareq.htm"], + \["character", "a_ch.htm"], + \["characterp", "f_chp.htm"], + \["check-type", "m_check_.htm"], + \["cis", "f_cis.htm"], + \["class", "t_class.htm"], + \["class-name", "f_class_.htm"], + \["class-of", "f_clas_1.htm"], + \["clear-input", "f_clear_.htm"], + \["clear-output", "f_finish.htm"], + \["close", "f_close.htm"], + \["clrhash", "f_clrhas.htm"], + \["code-char", "f_code_c.htm"], + \["coerce", "f_coerce.htm"], + \["compilation-speed", "d_optimi.htm"], + \["compile", "f_cmp.htm"], + \["compile-file", "f_cmp_fi.htm"], + \["compile-file-pathname", "f_cmp__1.htm"], + \["compiled-function", "t_cmpd_f.htm"], + \["compiled-function-p", "f_cmpd_f.htm"], + \["compiler-macro", "f_docume.htm"], + \["compiler-macro-function", "f_cmp_ma.htm"], + \["complement", "f_comple.htm"], + \["complex", "a_comple.htm"], + \["complexp", "f_comp_3.htm"], + \["compute-applicable-methods", "f_comput.htm"], + \["compute-restarts", "f_comp_1.htm"], + \["concatenate", "f_concat.htm"], + \["concatenated-stream", "t_concat.htm"], + \["concatenated-stream-streams", "f_conc_1.htm"], + \["cond", "m_cond.htm"], + \["condition", "e_cnd.htm"], + \["conjugate", "f_conjug.htm"], + \["cons", "a_cons.htm"], + \["consp", "f_consp.htm"], + \["constantly", "f_cons_1.htm"], + \["constantp", "f_consta.htm"], + \["continue", "a_contin.htm"], + \["control-error", "e_contro.htm"], + \["copy-alist", "f_cp_ali.htm"], + \["copy-list", "f_cp_lis.htm"], + \["copy-pprint-dispatch", "f_cp_ppr.htm"], + \["copy-readtable", "f_cp_rdt.htm"], + \["copy-seq", "f_cp_seq.htm"], + \["copy-structure", "f_cp_stu.htm"], + \["copy-symbol", "f_cp_sym.htm"], + \["copy-tree", "f_cp_tre.htm"], + \["cos", "f_sin_c.htm"], + \["cosh", "f_sinh_.htm"], + \["count", "f_countc.htm"], + \["count-if", "f_countc.htm"], + \["count-if-not", "f_countc.htm"], + \["ctypecase", "m_tpcase.htm"], + \["debug", "d_optimi.htm"], + \["decf", "m_incf_.htm"], + \["declaim", "m_declai.htm"], + \["declaration", "d_declar.htm"], + \["declare", "s_declar.htm"], + \["decode-float", "f_dec_fl.htm"], + \["decode-universal-time", "f_dec_un.htm"], + \["defclass", "m_defcla.htm"], + \["defconstant", "m_defcon.htm"], + \["defgeneric", "m_defgen.htm"], + \["define-compiler-macro", "m_define.htm"], + \["define-condition", "m_defi_5.htm"], + \["define-method-combination", "m_defi_4.htm"], + \["define-modify-macro", "m_defi_2.htm"], + \["define-setf-expander", "m_defi_3.htm"], + \["define-symbol-macro", "m_defi_1.htm"], + \["defmacro", "m_defmac.htm"], + \["defmethod", "m_defmet.htm"], + \["defpackage", "m_defpkg.htm"], + \["defparameter", "m_defpar.htm"], + \["defsetf", "m_defset.htm"], + \["defstruct", "m_defstr.htm"], + \["deftype", "m_deftp.htm"], + \["defun", "m_defun.htm"], + \["defvar", "m_defpar.htm"], + \["delete", "f_rm_rm.htm"], + \["delete-duplicates", "f_rm_dup.htm"], + \["delete-file", "f_del_fi.htm"], + \["delete-if", "f_rm_rm.htm"], + \["delete-if-not", "f_rm_rm.htm"], + \["delete-package", "f_del_pk.htm"], + \["denominator", "f_numera.htm"], + \["deposit-field", "f_deposi.htm"], + \["describe", "f_descri.htm"], + \["describe-object", "f_desc_1.htm"], + \["destructuring-bind", "m_destru.htm"], + \["digit-char", "f_digit_.htm"], + \["digit-char-p", "f_digi_1.htm"], + \["directory", "f_dir.htm"], + \["directory-namestring", "f_namest.htm"], + \["disassemble", "f_disass.htm"], + \["division-by-zero", "e_divisi.htm"], + \["do", "m_do_do.htm"], + \["do*", "m_do_do.htm"], + \["do-all-symbols", "m_do_sym.htm"], + \["do-external-symbols", "m_do_sym.htm"], + \["do-symbols", "m_do_sym.htm"], + \["documentation", "f_docume.htm"], + \["dolist", "m_dolist.htm"], + \["dotimes", "m_dotime.htm"], + \["double-float", "t_short_.htm"], + \["double-float-epsilon", "v_short_.htm"], + \["double-float-negative-epsilon", "v_short_.htm"], + \["dpb", "f_dpb.htm"], + \["dribble", "f_dribbl.htm"], + \["dynamic-extent", "d_dynami.htm"], + \["ecase", "m_case_.htm"], + \["echo-stream", "t_echo_s.htm"], + \["echo-stream-input-stream", "f_echo_s.htm"], + \["echo-stream-output-stream", "f_echo_s.htm"], + \["ed", "f_ed.htm"], + \["eighth", "f_firstc.htm"], + \["elt", "f_elt.htm"], + \["encode-universal-time", "f_encode.htm"], + \["end-of-file", "e_end_of.htm"], + \["endp", "f_endp.htm"], + \["enough-namestring", "f_namest.htm"], + \["ensure-directories-exist", "f_ensu_1.htm"], + \["ensure-generic-function", "f_ensure.htm"], + \["eq", "f_eq.htm"], + \["eql", "a_eql.htm"], + \["equal", "f_equal.htm"], + \["equalp", "f_equalp.htm"], + \["error", "a_error.htm"], + \["etypecase", "m_tpcase.htm"], + \["eval", "f_eval.htm"], + \["eval-when", "s_eval_w.htm"], + \["evenp", "f_evenpc.htm"], + \["every", "f_everyc.htm"], + \["exp", "f_exp_e.htm"], + \["export", "f_export.htm"], + \["expt", "f_exp_e.htm"], + \["extended-char", "t_extend.htm"], + \["fboundp", "f_fbound.htm"], + \["fceiling", "f_floorc.htm"], + \["fdefinition", "f_fdefin.htm"], + \["ffloor", "f_floorc.htm"], + \["fifth", "f_firstc.htm"], + \["file-author", "f_file_a.htm"], + \["file-error", "e_file_e.htm"], + \["file-error-pathname", "f_file_e.htm"], + \["file-length", "f_file_l.htm"], + \["file-namestring", "f_namest.htm"], + \["file-position", "f_file_p.htm"], + \["file-stream", "t_file_s.htm"], + \["file-string-length", "f_file_s.htm"], + \["file-write-date", "f_file_w.htm"], + \["fill", "f_fill.htm"], + \["fill-pointer", "f_fill_p.htm"], + \["find", "f_find_.htm"], + \["find-all-symbols", "f_find_a.htm"], + \["find-class", "f_find_c.htm"], + \["find-if", "f_find_.htm"], + \["find-if-not", "f_find_.htm"], + \["find-method", "f_find_m.htm"], + \["find-package", "f_find_p.htm"], + \["find-restart", "f_find_r.htm"], + \["find-symbol", "f_find_s.htm"], + \["finish-output", "f_finish.htm"], + \["first", "f_firstc.htm"], + \["fixnum", "t_fixnum.htm"], + \["flet", "s_flet_.htm"], + \["float", "a_float.htm"], + \["float-digits", "f_dec_fl.htm"], + \["float-precision", "f_dec_fl.htm"], + \["float-radix", "f_dec_fl.htm"], + \["float-sign", "f_dec_fl.htm"], + \["floating-point-inexact", "e_floa_1.htm"], + \["floating-point-invalid-operation", "e_floati.htm"], + \["floating-point-overflow", "e_floa_2.htm"], + \["floating-point-underflow", "e_floa_3.htm"], + \["floatp", "f_floatp.htm"], + \["floor", "f_floorc.htm"], + \["fmakunbound", "f_fmakun.htm"], + \["force-output", "f_finish.htm"], + \["format", "f_format.htm"], + \["formatter", "m_format.htm"], + \["fourth", "f_firstc.htm"], + \["fresh-line", "f_terpri.htm"], + \["fround", "f_floorc.htm"], + \["ftruncate", "f_floorc.htm"], + \["ftype", "d_ftype.htm"], + \["funcall", "f_funcal.htm"], + \["function", "a_fn.htm"], + \["function-keywords", "f_fn_kwd.htm"], + \["function-lambda-expression", "f_fn_lam.htm"], + \["functionp", "f_fnp.htm"], + \["gcd", "f_gcd.htm"], + \["generic-function", "t_generi.htm"], + \["gensym", "f_gensym.htm"], + \["gentemp", "f_gentem.htm"], + \["get", "f_get.htm"], + \["get-decoded-time", "f_get_un.htm"], + \["get-dispatch-macro-character", "f_set__1.htm"], + \["get-internal-real-time", "f_get_in.htm"], + \["get-internal-run-time", "f_get__1.htm"], + \["get-macro-character", "f_set_ma.htm"], + \["get-output-stream-string", "f_get_ou.htm"], + \["get-properties", "f_get_pr.htm"], + \["get-setf-expansion", "f_get_se.htm"], + \["get-universal-time", "f_get_un.htm"], + \["getf", "f_getf.htm"], + \["gethash", "f_gethas.htm"], + \["go", "s_go.htm"], + \["graphic-char-p", "f_graphi.htm"], + \["handler-bind", "m_handle.htm"], + \["handler-case", "m_hand_1.htm"], + \["hash-table", "t_hash_t.htm"], + \["hash-table-count", "f_hash_1.htm"], + \["hash-table-p", "f_hash_t.htm"], + \["hash-table-rehash-size", "f_hash_2.htm"], + \["hash-table-rehash-threshold", "f_hash_3.htm"], + \["hash-table-size", "f_hash_4.htm"], + \["hash-table-test", "f_hash_5.htm"], + \["host-namestring", "f_namest.htm"], + \["identity", "f_identi.htm"], + \["if", "s_if.htm"], + \["ignorable", "d_ignore.htm"], + \["ignore", "d_ignore.htm"], + \["ignore-errors", "m_ignore.htm"], + \["imagpart", "f_realpa.htm"], + \["import", "f_import.htm"], + \["in-package", "m_in_pkg.htm"], + \["incf", "m_incf_.htm"], + \["initialize-instance", "f_init_i.htm"], + \["inline", "d_inline.htm"], + \["input-stream-p", "f_in_stm.htm"], + \["inspect", "f_inspec.htm"], + \["integer", "t_intege.htm"], + \["integer-decode-float", "f_dec_fl.htm"], + \["integer-length", "f_intege.htm"], + \["integerp", "f_inte_1.htm"], + \["interactive-stream-p", "f_intera.htm"], + \["intern", "f_intern.htm"], + \["internal-time-units-per-second", "v_intern.htm"], + \["intersection", "f_isec_.htm"], + \["invalid-method-error", "f_invali.htm"], + \["invoke-debugger", "f_invoke.htm"], + \["invoke-restart", "f_invo_1.htm"], + \["invoke-restart-interactively", "f_invo_2.htm"], + \["isqrt", "f_sqrt_.htm"], + \["keyword", "t_kwd.htm"], + \["keywordp", "f_kwdp.htm"], + \["labels", "s_flet_.htm"], + \["lambda", "a_lambda.htm"], + \["lambda-list-keywords", "v_lambda.htm"], + \["lambda-parameters-limit", "v_lamb_1.htm"], + \["last", "f_last.htm"], + \["lcm", "f_lcm.htm"], + \["ldb", "f_ldb.htm"], + \["ldb-test", "f_ldb_te.htm"], + \["ldiff", "f_ldiffc.htm"], + \["least-negative-double-float", "v_most_1.htm"], + \["least-negative-long-float", "v_most_1.htm"], + \["least-negative-normalized-double-float", "v_most_1.htm"], + \["least-negative-normalized-long-float", "v_most_1.htm"], + \["least-negative-normalized-short-float", "v_most_1.htm"], + \["least-negative-normalized-single-float", "v_most_1.htm"], + \["least-negative-short-float", "v_most_1.htm"], + \["least-negative-single-float", "v_most_1.htm"], + \["least-positive-double-float", "v_most_1.htm"], + \["least-positive-long-float", "v_most_1.htm"], + \["least-positive-normalized-double-float", "v_most_1.htm"], + \["least-positive-normalized-long-float", "v_most_1.htm"], + \["least-positive-normalized-short-float", "v_most_1.htm"], + \["least-positive-normalized-single-float", "v_most_1.htm"], + \["least-positive-short-float", "v_most_1.htm"], + \["least-positive-single-float", "v_most_1.htm"], + \["length", "f_length.htm"], + \["let", "s_let_l.htm"], + \["let*", "s_let_l.htm"], + \["lisp-implementation-type", "f_lisp_i.htm"], + \["lisp-implementation-version", "f_lisp_i.htm"], + \["list", "a_list.htm"], + \["list*", "f_list_.htm"], + \["list-all-packages", "f_list_a.htm"], + \["list-length", "f_list_l.htm"], + \["listen", "f_listen.htm"], + \["listp", "f_listp.htm"], + \["load", "f_load.htm"], + \["load-logical-pathname-translations", "f_ld_log.htm"], + \["load-time-value", "s_ld_tim.htm"], + \["locally", "s_locall.htm"], + \["log", "f_log.htm"], + \["logand", "f_logand.htm"], + \["logandc1", "f_logand.htm"], + \["logandc2", "f_logand.htm"], + \["logbitp", "f_logbtp.htm"], + \["logcount", "f_logcou.htm"], + \["logeqv", "f_logand.htm"], + \["logical-pathname", "a_logica.htm"], + \["logical-pathname-translations", "f_logica.htm"], + \["logior", "f_logand.htm"], + \["lognand", "f_logand.htm"], + \["lognor", "f_logand.htm"], + \["lognot", "f_logand.htm"], + \["logorc1", "f_logand.htm"], + \["logorc2", "f_logand.htm"], + \["logtest", "f_logtes.htm"], + \["logxor", "f_logand.htm"], + \["long-float", "t_short_.htm"], + \["long-float-epsilon", "v_short_.htm"], + \["long-float-negative-epsilon", "v_short_.htm"], + \["long-site-name", "f_short_.htm"], + \["loop", "m_loop.htm"], + \["loop-finish", "m_loop_f.htm"], + \["lower-case-p", "f_upper_.htm"], + \["machine-instance", "f_mach_i.htm"], + \["machine-type", "f_mach_t.htm"], + \["machine-version", "f_mach_v.htm"], + \["macro-function", "f_macro_.htm"], + \["macroexpand", "f_mexp_.htm"], + \["macroexpand-1", "f_mexp_.htm"], + \["macrolet", "s_flet_.htm"], + \["make-array", "f_mk_ar.htm"], + \["make-broadcast-stream", "f_mk_bro.htm"], + \["make-concatenated-stream", "f_mk_con.htm"], + \["make-condition", "f_mk_cnd.htm"], + \["make-dispatch-macro-character", "f_mk_dis.htm"], + \["make-echo-stream", "f_mk_ech.htm"], + \["make-hash-table", "f_mk_has.htm"], + \["make-instance", "f_mk_ins.htm"], + \["make-instances-obsolete", "f_mk_i_1.htm"], + \["make-list", "f_mk_lis.htm"], + \["make-load-form", "f_mk_ld_.htm"], + \["make-load-form-saving-slots", "f_mk_l_1.htm"], + \["make-method", "m_call_m.htm"], + \["make-package", "f_mk_pkg.htm"], + \["make-pathname", "f_mk_pn.htm"], + \["make-random-state", "f_mk_rnd.htm"], + \["make-sequence", "f_mk_seq.htm"], + \["make-string", "f_mk_stg.htm"], + \["make-string-input-stream", "f_mk_s_1.htm"], + \["make-string-output-stream", "f_mk_s_2.htm"], + \["make-symbol", "f_mk_sym.htm"], + \["make-synonym-stream", "f_mk_syn.htm"], + \["make-two-way-stream", "f_mk_two.htm"], + \["makunbound", "f_makunb.htm"], + \["map", "f_map.htm"], + \["map-into", "f_map_in.htm"], + \["mapc", "f_mapc_.htm"], + \["mapcan", "f_mapc_.htm"], + \["mapcar", "f_mapc_.htm"], + \["mapcon", "f_mapc_.htm"], + \["maphash", "f_maphas.htm"], + \["mapl", "f_mapc_.htm"], + \["maplist", "f_mapc_.htm"], + \["mask-field", "f_mask_f.htm"], + \["max", "f_max_m.htm"], + \["member", "a_member.htm"], + \["member-if", "f_mem_m.htm"], + \["member-if-not", "f_mem_m.htm"], + \["merge", "f_merge.htm"], + \["merge-pathnames", "f_merge_.htm"], + \["method", "t_method.htm"], + \["method-combination", "a_method.htm"], + \["method-combination-error", "f_meth_1.htm"], + \["method-qualifiers", "f_method.htm"], + \["min", "f_max_m.htm"], + \["minusp", "f_minusp.htm"], + \["mismatch", "f_mismat.htm"], + \["mod", "a_mod.htm"], + \["most-negative-double-float", "v_most_1.htm"], + \["most-negative-fixnum", "v_most_p.htm"], + \["most-negative-long-float", "v_most_1.htm"], + \["most-negative-short-float", "v_most_1.htm"], + \["most-negative-single-float", "v_most_1.htm"], + \["most-positive-double-float", "v_most_1.htm"], + \["most-positive-fixnum", "v_most_p.htm"], + \["most-positive-long-float", "v_most_1.htm"], + \["most-positive-short-float", "v_most_1.htm"], + \["most-positive-single-float", "v_most_1.htm"], + \["muffle-warning", "a_muffle.htm"], + \["multiple-value-bind", "m_multip.htm"], + \["multiple-value-call", "s_multip.htm"], + \["multiple-value-list", "m_mult_1.htm"], + \["multiple-value-prog1", "s_mult_1.htm"], + \["multiple-value-setq", "m_mult_2.htm"], + \["multiple-values-limit", "v_multip.htm"], + \["name-char", "f_name_c.htm"], + \["namestring", "f_namest.htm"], + \["nbutlast", "f_butlas.htm"], + \["nconc", "f_nconc.htm"], + \["next-method-p", "f_next_m.htm"], + \["nil", "a_nil.htm"], + \["nintersection", "f_isec_.htm"], + \["ninth", "f_firstc.htm"], + \["no-applicable-method", "f_no_app.htm"], + \["no-next-method", "f_no_nex.htm"], + \["not", "a_not.htm"], + \["notany", "f_everyc.htm"], + \["notevery", "f_everyc.htm"], + \["notinline", "d_inline.htm"], + \["nreconc", "f_revapp.htm"], + \["nreverse", "f_revers.htm"], + \["nset-difference", "f_set_di.htm"], + \["nset-exclusive-or", "f_set_ex.htm"], + \["nstring-capitalize", "f_stg_up.htm"], + \["nstring-downcase", "f_stg_up.htm"], + \["nstring-upcase", "f_stg_up.htm"], + \["nsublis", "f_sublis.htm"], + \["nsubst", "f_substc.htm"], + \["nsubst-if", "f_substc.htm"], + \["nsubst-if-not", "f_substc.htm"], + \["nsubstitute", "f_sbs_s.htm"], + \["nsubstitute-if", "f_sbs_s.htm"], + \["nsubstitute-if-not", "f_sbs_s.htm"], + \["nth", "f_nth.htm"], + \["nth-value", "m_nth_va.htm"], + \["nthcdr", "f_nthcdr.htm"], + \["null", "a_null.htm"], + \["number", "t_number.htm"], + \["numberp", "f_nump.htm"], + \["numerator", "f_numera.htm"], + \["nunion", "f_unionc.htm"], + \["oddp", "f_evenpc.htm"], + \["open", "f_open.htm"], + \["open-stream-p", "f_open_s.htm"], + \["optimize", "d_optimi.htm"], + \["or", "a_or.htm"], + \["otherwise", "m_case_.htm"], + \["output-stream-p", "f_in_stm.htm"], + \["package", "t_pkg.htm"], + \["package-error", "e_pkg_er.htm"], + \["package-error-package", "f_pkg_er.htm"], + \["package-name", "f_pkg_na.htm"], + \["package-nicknames", "f_pkg_ni.htm"], + \["package-shadowing-symbols", "f_pkg_sh.htm"], + \["package-use-list", "f_pkg_us.htm"], + \["package-used-by-list", "f_pkg__1.htm"], + \["packagep", "f_pkgp.htm"], + \["pairlis", "f_pairli.htm"], + \["parse-error", "e_parse_.htm"], + \["parse-integer", "f_parse_.htm"], + \["parse-namestring", "f_pars_1.htm"], + \["pathname", "a_pn.htm"], + \["pathname-device", "f_pn_hos.htm"], + \["pathname-directory", "f_pn_hos.htm"], + \["pathname-host", "f_pn_hos.htm"], + \["pathname-match-p", "f_pn_mat.htm"], + \["pathname-name", "f_pn_hos.htm"], + \["pathname-type", "f_pn_hos.htm"], + \["pathname-version", "f_pn_hos.htm"], + \["pathnamep", "f_pnp.htm"], + \["peek-char", "f_peek_c.htm"], + \["phase", "f_phase.htm"], + \["pi", "v_pi.htm"], + \["plusp", "f_minusp.htm"], + \["pop", "m_pop.htm"], + \["position", "f_pos_p.htm"], + \["position-if", "f_pos_p.htm"], + \["position-if-not", "f_pos_p.htm"], + \["pprint", "f_wr_pr.htm"], + \["pprint-dispatch", "f_ppr_di.htm"], + \["pprint-exit-if-list-exhausted", "m_ppr_ex.htm"], + \["pprint-fill", "f_ppr_fi.htm"], + \["pprint-indent", "f_ppr_in.htm"], + \["pprint-linear", "f_ppr_fi.htm"], + \["pprint-logical-block", "m_ppr_lo.htm"], + \["pprint-newline", "f_ppr_nl.htm"], + \["pprint-pop", "m_ppr_po.htm"], + \["pprint-tab", "f_ppr_ta.htm"], + \["pprint-tabular", "f_ppr_fi.htm"], + \["prin1", "f_wr_pr.htm"], + \["prin1-to-string", "f_wr_to_.htm"], + \["princ", "f_wr_pr.htm"], + \["princ-to-string", "f_wr_to_.htm"], + \["print", "f_wr_pr.htm"], + \["print-not-readable", "e_pr_not.htm"], + \["print-not-readable-object", "f_pr_not.htm"], + \["print-object", "f_pr_obj.htm"], + \["print-unreadable-object", "m_pr_unr.htm"], + \["probe-file", "f_probe_.htm"], + \["proclaim", "f_procla.htm"], + \["prog", "m_prog_.htm"], + \["prog*", "m_prog_.htm"], + \["prog1", "m_prog1c.htm"], + \["prog2", "m_prog1c.htm"], + \["progn", "s_progn.htm"], + \["program-error", "e_progra.htm"], + \["progv", "s_progv.htm"], + \["provide", "f_provid.htm"], + \["psetf", "m_setf_.htm"], + \["psetq", "m_psetq.htm"], + \["push", "m_push.htm"], + \["pushnew", "m_pshnew.htm"], + \["quote", "s_quote.htm"], + \["random", "f_random.htm"], + \["random-state", "t_rnd_st.htm"], + \["random-state-p", "f_rnd_st.htm"], + \["rassoc", "f_rassoc.htm"], + \["rassoc-if", "f_rassoc.htm"], + \["rassoc-if-not", "f_rassoc.htm"], + \["ratio", "t_ratio.htm"], + \["rational", "a_ration.htm"], + \["rationalize", "f_ration.htm"], + \["rationalp", "f_rati_1.htm"], + \["read", "f_rd_rd.htm"], + \["read-byte", "f_rd_by.htm"], + \["read-char", "f_rd_cha.htm"], + \["read-char-no-hang", "f_rd_c_1.htm"], + \["read-delimited-list", "f_rd_del.htm"], + \["read-from-string", "f_rd_fro.htm"], + \["read-line", "f_rd_lin.htm"], + \["read-preserving-whitespace", "f_rd_rd.htm"], + \["read-sequence", "f_rd_seq.htm"], + \["reader-error", "e_rder_e.htm"], + \["readtable", "t_rdtabl.htm"], + \["readtable-case", "f_rdtabl.htm"], + \["readtablep", "f_rdta_1.htm"], + \["real", "t_real.htm"], + \["realp", "f_realp.htm"], + \["realpart", "f_realpa.htm"], + \["reduce", "f_reduce.htm"], + \["reinitialize-instance", "f_reinit.htm"], + \["rem", "f_mod_r.htm"], + \["remf", "m_remf.htm"], + \["remhash", "f_remhas.htm"], + \["remove", "f_rm_rm.htm"], + \["remove-duplicates", "f_rm_dup.htm"], + \["remove-if", "f_rm_rm.htm"], + \["remove-if-not", "f_rm_rm.htm"], + \["remove-method", "f_rm_met.htm"], + \["remprop", "f_rempro.htm"], + \["rename-file", "f_rn_fil.htm"], + \["rename-package", "f_rn_pkg.htm"], + \["replace", "f_replac.htm"], + \["require", "f_provid.htm"], + \["rest", "f_rest.htm"], + \["restart", "t_rst.htm"], + \["restart-bind", "m_rst_bi.htm"], + \["restart-case", "m_rst_ca.htm"], + \["restart-name", "f_rst_na.htm"], + \["return", "m_return.htm"], + \["return-from", "s_ret_fr.htm"], + \["revappend", "f_revapp.htm"], + \["reverse", "f_revers.htm"], + \["room", "f_room.htm"], + \["rotatef", "m_rotate.htm"], + \["round", "f_floorc.htm"], + \["row-major-aref", "f_row_ma.htm"], + \["rplaca", "f_rplaca.htm"], + \["rplacd", "f_rplaca.htm"], + \["safety", "d_optimi.htm"], + \["satisfies", "t_satisf.htm"], + \["sbit", "f_bt_sb.htm"], + \["scale-float", "f_dec_fl.htm"], + \["schar", "f_char_.htm"], + \["search", "f_search.htm"], + \["second", "f_firstc.htm"], + \["sequence", "t_seq.htm"], + \["serious-condition", "e_seriou.htm"], + \["set", "f_set.htm"], + \["set-difference", "f_set_di.htm"], + \["set-dispatch-macro-character", "f_set__1.htm"], + \["set-exclusive-or", "f_set_ex.htm"], + \["set-macro-character", "f_set_ma.htm"], + \["set-pprint-dispatch", "f_set_pp.htm"], + \["set-syntax-from-char", "f_set_sy.htm"], + \["setf", "a_setf.htm"], + \["setq", "s_setq.htm"], + \["seventh", "f_firstc.htm"], + \["shadow", "f_shadow.htm"], + \["shadowing-import", "f_shdw_i.htm"], + \["shared-initialize", "f_shared.htm"], + \["shiftf", "m_shiftf.htm"], + \["short-float", "t_short_.htm"], + \["short-float-epsilon", "v_short_.htm"], + \["short-float-negative-epsilon", "v_short_.htm"], + \["short-site-name", "f_short_.htm"], + \["signal", "f_signal.htm"], + \["signed-byte", "t_sgn_by.htm"], + \["signum", "f_signum.htm"], + \["simple-array", "t_smp_ar.htm"], + \["simple-base-string", "t_smp_ba.htm"], + \["simple-bit-vector", "t_smp_bt.htm"], + \["simple-bit-vector-p", "f_smp_bt.htm"], + \["simple-condition", "e_smp_cn.htm"], + \["simple-condition-format-arguments", "f_smp_cn.htm"], + \["simple-condition-format-control", "f_smp_cn.htm"], + \["simple-error", "e_smp_er.htm"], + \["simple-string", "t_smp_st.htm"], + \["simple-string-p", "f_smp_st.htm"], + \["simple-type-error", "e_smp_tp.htm"], + \["simple-vector", "t_smp_ve.htm"], + \["simple-vector-p", "f_smp_ve.htm"], + \["simple-warning", "e_smp_wa.htm"], + \["sin", "f_sin_c.htm"], + \["single-float", "t_short_.htm"], + \["single-float-epsilon", "v_short_.htm"], + \["single-float-negative-epsilon", "v_short_.htm"], + \["sinh", "f_sinh_.htm"], + \["sixth", "f_firstc.htm"], + \["sleep", "f_sleep.htm"], + \["slot-boundp", "f_slt_bo.htm"], + \["slot-exists-p", "f_slt_ex.htm"], + \["slot-makunbound", "f_slt_ma.htm"], + \["slot-missing", "f_slt_mi.htm"], + \["slot-unbound", "f_slt_un.htm"], + \["slot-value", "f_slt_va.htm"], + \["software-type", "f_sw_tpc.htm"], + \["software-version", "f_sw_tpc.htm"], + \["some", "f_everyc.htm"], + \["sort", "f_sort_.htm"], + \["space", "d_optimi.htm"], + \["special", "d_specia.htm"], + \["special-operator-p", "f_specia.htm"], + \["speed", "d_optimi.htm"], + \["sqrt", "f_sqrt_.htm"], + \["stable-sort", "f_sort_.htm"], + \["standard", "07_ffb.htm"], + \["standard-char", "t_std_ch.htm"], + \["standard-char-p", "f_std_ch.htm"], + \["standard-class", "t_std_cl.htm"], + \["standard-generic-function", "t_std_ge.htm"], + \["standard-method", "t_std_me.htm"], + \["standard-object", "t_std_ob.htm"], + \["step", "m_step.htm"], + \["storage-condition", "e_storag.htm"], + \["store-value", "a_store_.htm"], + \["stream", "t_stream.htm"], + \["stream-element-type", "f_stm_el.htm"], + \["stream-error", "e_stm_er.htm"], + \["stream-error-stream", "f_stm_er.htm"], + \["stream-external-format", "f_stm_ex.htm"], + \["streamp", "f_stmp.htm"], + \["string", "a_string.htm"], + \["string-capitalize", "f_stg_up.htm"], + \["string-downcase", "f_stg_up.htm"], + \["string-equal", "f_stgeq_.htm"], + \["string-greaterp", "f_stgeq_.htm"], + \["string-left-trim", "f_stg_tr.htm"], + \["string-lessp", "f_stgeq_.htm"], + \["string-not-equal", "f_stgeq_.htm"], + \["string-not-greaterp", "f_stgeq_.htm"], + \["string-not-lessp", "f_stgeq_.htm"], + \["string-right-trim", "f_stg_tr.htm"], + \["string-stream", "t_stg_st.htm"], + \["string-trim", "f_stg_tr.htm"], + \["string-upcase", "f_stg_up.htm"], + \["string/=", "f_stgeq_.htm"], + \["string<", "f_stgeq_.htm"], + \["string<=", "f_stgeq_.htm"], + \["string=", "f_stgeq_.htm"], + \["string>", "f_stgeq_.htm"], + \["string>=", "f_stgeq_.htm"], + \["stringp", "f_stgp.htm"], + \["structure", "f_docume.htm"], + \["structure-class", "t_stu_cl.htm"], + \["structure-object", "t_stu_ob.htm"], + \["style-warning", "e_style_.htm"], + \["sublis", "f_sublis.htm"], + \["subseq", "f_subseq.htm"], + \["subsetp", "f_subset.htm"], + \["subst", "f_substc.htm"], + \["subst-if", "f_substc.htm"], + \["subst-if-not", "f_substc.htm"], + \["substitute", "f_sbs_s.htm"], + \["substitute-if", "f_sbs_s.htm"], + \["substitute-if-not", "f_sbs_s.htm"], + \["subtypep", "f_subtpp.htm"], + \["svref", "f_svref.htm"], + \["sxhash", "f_sxhash.htm"], + \["symbol", "t_symbol.htm"], + \["symbol-function", "f_symb_1.htm"], + \["symbol-macrolet", "s_symbol.htm"], + \["symbol-name", "f_symb_2.htm"], + \["symbol-package", "f_symb_3.htm"], + \["symbol-plist", "f_symb_4.htm"], + \["symbol-value", "f_symb_5.htm"], + \["symbolp", "f_symbol.htm"], + \["synonym-stream", "t_syn_st.htm"], + \["synonym-stream-symbol", "f_syn_st.htm"], + \["t", "a_t.htm"], + \["tagbody", "s_tagbod.htm"], + \["tailp", "f_ldiffc.htm"], + \["tan", "f_sin_c.htm"], + \["tanh", "f_sinh_.htm"], + \["tenth", "f_firstc.htm"], + \["terpri", "f_terpri.htm"], + \["the", "s_the.htm"], + \["third", "f_firstc.htm"], + \["throw", "s_throw.htm"], + \["time", "m_time.htm"], + \["trace", "m_tracec.htm"], + \["translate-logical-pathname", "f_tr_log.htm"], + \["translate-pathname", "f_tr_pn.htm"], + \["tree-equal", "f_tree_e.htm"], + \["truename", "f_tn.htm"], + \["truncate", "f_floorc.htm"], + \["two-way-stream", "t_two_wa.htm"], + \["two-way-stream-input-stream", "f_two_wa.htm"], + \["two-way-stream-output-stream", "f_two_wa.htm"], + \["type", "a_type.htm"], + \["type-error", "e_tp_err.htm"], + \["type-error-datum", "f_tp_err.htm"], + \["type-error-expected-type", "f_tp_err.htm"], + \["type-of", "f_tp_of.htm"], + \["typecase", "m_tpcase.htm"], + \["typep", "f_typep.htm"], + \["unbound-slot", "e_unboun.htm"], + \["unbound-slot-instance", "f_unboun.htm"], + \["unbound-variable", "e_unbo_1.htm"], + \["undefined-function", "e_undefi.htm"], + \["unexport", "f_unexpo.htm"], + \["unintern", "f_uninte.htm"], + \["union", "f_unionc.htm"], + \["unless", "m_when_.htm"], + \["unread-char", "f_unrd_c.htm"], + \["unsigned-byte", "t_unsgn_.htm"], + \["untrace", "m_tracec.htm"], + \["unuse-package", "f_unuse_.htm"], + \["unwind-protect", "s_unwind.htm"], + \["update-instance-for-different-class", "f_update.htm"], + \["update-instance-for-redefined-class", "f_upda_1.htm"], + \["upgraded-array-element-type", "f_upgr_1.htm"], + \["upgraded-complex-part-type", "f_upgrad.htm"], + \["upper-case-p", "f_upper_.htm"], + \["use-package", "f_use_pk.htm"], + \["use-value", "a_use_va.htm"], + \["user-homedir-pathname", "f_user_h.htm"], + \["values", "a_values.htm"], + \["values-list", "f_vals_l.htm"], + \["variable", "f_docume.htm"], + \["vector", "a_vector.htm"], + \["vector-pop", "f_vec_po.htm"], + \["vector-push", "f_vec_ps.htm"], + \["vector-push-extend", "f_vec_ps.htm"], + \["vectorp", "f_vecp.htm"], + \["warn", "f_warn.htm"], + \["warning", "e_warnin.htm"], + \["when", "m_when_.htm"], + \["wild-pathname-p", "f_wild_p.htm"], + \["with-accessors", "m_w_acce.htm"], + \["with-compilation-unit", "m_w_comp.htm"], + \["with-condition-restarts", "m_w_cnd_.htm"], + \["with-hash-table-iterator", "m_w_hash.htm"], + \["with-input-from-string", "m_w_in_f.htm"], + \["with-open-file", "m_w_open.htm"], + \["with-open-stream", "m_w_op_1.htm"], + \["with-output-to-string", "m_w_out_.htm"], + \["with-package-iterator", "m_w_pkg_.htm"], + \["with-simple-restart", "m_w_smp_.htm"], + \["with-slots", "m_w_slts.htm"], + \["with-standard-io-syntax", "m_w_std_.htm"], + \["write", "f_wr_pr.htm"], + \["write-byte", "f_wr_by.htm"], + \["write-char", "f_wr_cha.htm"], + \["write-line", "f_wr_stg.htm"], + \["write-sequence", "f_wr_seq.htm"], + \["write-string", "f_wr_stg.htm"], + \["write-to-string", "f_wr_to_.htm"], + \["y-or-n-p", "f_y_or_n.htm"], + \["yes-or-no-p", "f_y_or_n.htm"], + \["zerop", "f_zerop.htm"]] +endif + +if !exists( 'g:slimv_clhs_issues' ) + let g:slimv_clhs_issues = [ + \["&environment-binding-order:first", "iss001.htm"], + \["access-error-name", "iss002.htm"], + \["adjust-array-displacement", "iss003.htm"], + \["adjust-array-fill-pointer", "iss004.htm"], + \["adjust-array-not-adjustable:implicit-copy", "iss005.htm"], + \["allocate-instance:add", "iss006.htm"], + \["allow-local-inline:inline-notinline", "iss007.htm"], + \["allow-other-keys-nil:permit", "iss008.htm"], + \["aref-1d", "iss009.htm"], + \["argument-mismatch-error-again:consistent", "iss010.htm"], + \["argument-mismatch-error-moon:fix", "iss011.htm"], + \["argument-mismatch-error:more-clarifications", "iss012.htm"], + \["arguments-underspecified:specify", "iss013.htm"], + \["array-dimension-limit-implications:all-fixnum", "iss014.htm"], + \["array-type-element-type-semantics:unify-upgrading", "iss015.htm"], + \["assert-error-type:error", "iss016.htm"], + \["assoc-rassoc-if-key", "iss017.htm"], + \["assoc-rassoc-if-key:yes", "iss018.htm"], + \["boa-aux-initialization:error-on-read", "iss019.htm"], + \["break-on-warnings-obsolete:remove", "iss020.htm"], + \["broadcast-stream-return-values:clarify-minimally", "iss021.htm"], + \["butlast-negative:should-signal", "iss022.htm"], + \["change-class-initargs:permit", "iss023.htm"], + \["char-name-case:x3j13-mar-91", "iss024.htm"], + \["character-loose-ends:fix", "iss025.htm"], + \["character-proposal:2", "iss026.htm"], + \["character-proposal:2-1-1", "iss027.htm"], + \["character-proposal:2-1-2", "iss028.htm"], + \["character-proposal:2-2-1", "iss029.htm"], + \["character-proposal:2-3-1", "iss030.htm"], + \["character-proposal:2-3-2", "iss031.htm"], + \["character-proposal:2-3-3", "iss032.htm"], + \["character-proposal:2-3-4", "iss033.htm"], + \["character-proposal:2-3-5", "iss034.htm"], + \["character-proposal:2-3-6", "iss035.htm"], + \["character-proposal:2-4-1", "iss036.htm"], + \["character-proposal:2-4-2", "iss037.htm"], + \["character-proposal:2-4-3", "iss038.htm"], + \["character-proposal:2-5-2", "iss039.htm"], + \["character-proposal:2-5-6", "iss040.htm"], + \["character-proposal:2-5-7", "iss041.htm"], + \["character-proposal:2-6-1", "iss042.htm"], + \["character-proposal:2-6-2", "iss043.htm"], + \["character-proposal:2-6-3", "iss044.htm"], + \["character-proposal:2-6-5", "iss045.htm"], + \["character-vs-char:less-inconsistent-short", "iss046.htm"], + \["class-object-specializer:affirm", "iss047.htm"], + \["clos-conditions-again:allow-subset", "iss048.htm"], + \["clos-conditions:integrate", "iss049.htm"], + \["clos-error-checking-order:no-applicable-method-first", "iss050.htm"], + \["clos-macro-compilation:minimal", "iss051.htm"], + \["close-constructed-stream:argument-stream-only", "iss052.htm"], + \["closed-stream-operations:allow-inquiry", "iss053.htm"], + \["coercing-setf-name-to-function:all-function-names", "iss054.htm"], + \["colon-number", "iss055.htm"], + \["common-features:specify", "iss056.htm"], + \["common-type:remove", "iss057.htm"], + \["compile-argument-problems-again:fix", "iss058.htm"], + \["compile-file-handling-of-top-level-forms:clarify", "iss059.htm"], + \["compile-file-output-file-defaults:input-file", "iss060.htm"], + \["compile-file-package", "iss061.htm"], + \["compile-file-pathname-arguments:make-consistent", "iss062.htm"], + \["compile-file-symbol-handling:new-require-consistency", "iss063.htm"], + \["compiled-function-requirements:tighten", "iss064.htm"], + \["compiler-diagnostics:use-handler", "iss065.htm"], + \["compiler-let-confusion:eliminate", "iss066.htm"], + \["compiler-verbosity:like-load", "iss067.htm"], + \["compiler-warning-stream", "iss068.htm"], + \["complex-atan-branch-cut:tweak", "iss069.htm"], + \["complex-atanh-bogus-formula:tweak-more", "iss070.htm"], + \["complex-rational-result:extend", "iss071.htm"], + \["compute-applicable-methods:generic", "iss072.htm"], + \["concatenate-sequence:signal-error", "iss073.htm"], + \["condition-accessors-setfable:no", "iss074.htm"], + \["condition-restarts:buggy", "iss075.htm"], + \["condition-restarts:permit-association", "iss076.htm"], + \["condition-slots:hidden", "iss077.htm"], + \["cons-type-specifier:add", "iss078.htm"], + \["constant-circular-compilation:yes", "iss079.htm"], + \["constant-collapsing:generalize", "iss080.htm"], + \["constant-compilable-types:specify", "iss081.htm"], + \["constant-function-compilation:no", "iss082.htm"], + \["constant-modification:disallow", "iss083.htm"], + \["constantp-definition:intentional", "iss084.htm"], + \["constantp-environment:add-arg", "iss085.htm"], + \["contagion-on-numerical-comparisons:transitive", "iss086.htm"], + \["copy-symbol-copy-plist:copy-list", "iss087.htm"], + \["copy-symbol-print-name:equal", "iss088.htm"], + \["data-io:add-support", "iss089.htm"], + \["data-types-hierarchy-underspecified", "iss090.htm"], + \["debugger-hook-vs-break:clarify", "iss091.htm"], + \["declaration-scope:no-hoisting", "iss092.htm"], + \["declare-array-type-element-references:restrictive", "iss093.htm"], + \["declare-function-ambiguity:delete-ftype-abbreviation", "iss094.htm"], + \["declare-macros:flush", "iss095.htm"], + \["declare-type-free:lexical", "iss096.htm"], + \["decls-and-doc", "iss097.htm"], + \["decode-universal-time-daylight:like-encode", "iss098.htm"], + \["defconstant-special:no", "iss099.htm"], + \["defgeneric-declare:allow-multiple", "iss100.htm"], + \["define-compiler-macro:x3j13-nov89", "iss101.htm"], + \["define-condition-syntax:incompatibly-more-like-defclass+emphasize-read-only", "iss102.htm"], + \["define-method-combination-behavior:clarify", "iss103.htm"], + \["defining-macros-non-top-level:allow", "iss104.htm"], + \["defmacro-block-scope:excludes-bindings", "iss105.htm"], + \["defmacro-lambda-list:tighten-description", "iss106.htm"], + \["defmethod-declaration-scope:corresponds-to-bindings", "iss107.htm"], + \["defpackage:addition", "iss108.htm"], + \["defstruct-constructor-key-mixture:allow-key", "iss109.htm"], + \["defstruct-constructor-options:explicit", "iss110.htm"], + \["defstruct-constructor-slot-variables:not-bound", "iss111.htm"], + \["defstruct-copier-argument-type:restrict", "iss112.htm"], + \["defstruct-copier:argument-type", "iss113.htm"], + \["defstruct-default-value-evaluation:iff-needed", "iss114.htm"], + \["defstruct-include-deftype:explicitly-undefined", "iss115.htm"], + \["defstruct-print-function-again:x3j13-mar-93", "iss116.htm"], + \["defstruct-print-function-inheritance:yes", "iss117.htm"], + \["defstruct-redefinition:error", "iss118.htm"], + \["defstruct-slots-constraints-name:duplicates-error", "iss119.htm"], + \["defstruct-slots-constraints-number", "iss120.htm"], + \["deftype-destructuring:yes", "iss121.htm"], + \["deftype-key:allow", "iss122.htm"], + \["defvar-documentation:unevaluated", "iss123.htm"], + \["defvar-init-time:not-delayed", "iss124.htm"], + \["defvar-initialization:conservative", "iss125.htm"], + \["deprecation-position:limited", "iss126.htm"], + \["describe-interactive:no", "iss127.htm"], + \["describe-underspecified:describe-object", "iss128.htm"], + \["destructive-operations:specify", "iss129.htm"], + \["destructuring-bind:new-macro", "iss130.htm"], + \["disassemble-side-effect:do-not-install", "iss131.htm"], + \["displaced-array-predicate:add", "iss132.htm"], + \["do-symbols-block-scope:entire-form", "iss133.htm"], + \["do-symbols-duplicates", "iss134.htm"], + \["documentation-function-bugs:fix", "iss135.htm"], + \["documentation-function-tangled:require-argument", "iss136.htm"], + \["dotimes-ignore:x3j13-mar91", "iss137.htm"], + \["dotted-list-arguments:clarify", "iss138.htm"], + \["dotted-macro-forms:allow", "iss139.htm"], + \["dribble-technique", "iss140.htm"], + \["dynamic-extent-function:extend", "iss141.htm"], + \["dynamic-extent:new-declaration", "iss142.htm"], + \["equal-structure:maybe-status-quo", "iss143.htm"], + \["error-terminology-warning:might", "iss144.htm"], + \["eval-other:self-evaluate", "iss145.htm"], + \["eval-top-level:load-like-compile-file", "iss146.htm"], + \["eval-when-non-top-level:generalize-eval-new-keywords", "iss147.htm"], + \["eval-when-obsolete-keywords:x3j13-mar-1993", "iss148.htm"], + \["evalhook-step-confusion:fix", "iss149.htm"], + \["evalhook-step-confusion:x3j13-nov-89", "iss150.htm"], + \["exit-extent-and-condition-system:like-dynamic-bindings", "iss151.htm"], + \["exit-extent:minimal", "iss152.htm"], + \["expt-ratio:p.211", "iss153.htm"], + \["extensions-position:documentation", "iss154.htm"], + \["external-format-for-every-file-connection:minimum", "iss155.htm"], + \["extra-return-values:no", "iss156.htm"], + \["file-open-error:signal-file-error", "iss157.htm"], + \["fixnum-non-portable:tighten-definition", "iss158.htm"], + \["flet-declarations", "iss159.htm"], + \["flet-declarations:allow", "iss160.htm"], + \["flet-implicit-block:yes", "iss161.htm"], + \["float-underflow:add-variables", "iss162.htm"], + \["floating-point-condition-names:x3j13-nov-89", "iss163.htm"], + \["format-atsign-colon", "iss164.htm"], + \["format-colon-uparrow-scope", "iss165.htm"], + \["format-comma-interval", "iss166.htm"], + \["format-e-exponent-sign:force-sign", "iss167.htm"], + \["format-op-c", "iss168.htm"], + \["format-pretty-print:yes", "iss169.htm"], + \["format-string-arguments:specify", "iss170.htm"], + \["function-call-evaluation-order:more-unspecified", "iss171.htm"], + \["function-composition:jan89-x3j13", "iss172.htm"], + \["function-definition:jan89-x3j13", "iss173.htm"], + \["function-name:large", "iss174.htm"], + \["function-type", "iss175.htm"], + \["function-type-argument-type-semantics:restrictive", "iss176.htm"], + \["function-type-key-name:specify-keyword", "iss177.htm"], + \["function-type-rest-list-element:use-actual-argument-type", "iss178.htm"], + \["function-type:x3j13-march-88", "iss179.htm"], + \["generalize-pretty-printer:unify", "iss180.htm"], + \["generic-flet-poorly-designed:delete", "iss181.htm"], + \["gensym-name-stickiness:like-teflon", "iss182.htm"], + \["gentemp-bad-idea:deprecate", "iss183.htm"], + \["get-macro-character-readtable:nil-standard", "iss184.htm"], + \["get-setf-method-environment:add-arg", "iss185.htm"], + \["hash-table-access:x3j13-mar-89", "iss186.htm"], + \["hash-table-key-modification:specify", "iss187.htm"], + \["hash-table-package-generators:add-with-wrapper", "iss188.htm"], + \["hash-table-rehash-size-integer", "iss189.htm"], + \["hash-table-size:intended-entries", "iss190.htm"], + \["hash-table-tests:add-equalp", "iss191.htm"], + \["ieee-atan-branch-cut:split", "iss192.htm"], + \["ignore-use-terminology:value-only", "iss193.htm"], + \["import-setf-symbol-package", "iss194.htm"], + \["in-package-functionality:mar89-x3j13", "iss195.htm"], + \["in-syntax:minimal", "iss196.htm"], + \["initialization-function-keyword-checking", "iss197.htm"], + \["iso-compatibility:add-substrate", "iss198.htm"], + \["jun90-trivial-issues:11", "iss199.htm"], + \["jun90-trivial-issues:14", "iss200.htm"], + \["jun90-trivial-issues:24", "iss201.htm"], + \["jun90-trivial-issues:25", "iss202.htm"], + \["jun90-trivial-issues:27", "iss203.htm"], + \["jun90-trivial-issues:3", "iss204.htm"], + \["jun90-trivial-issues:4", "iss205.htm"], + \["jun90-trivial-issues:5", "iss206.htm"], + \["jun90-trivial-issues:9", "iss207.htm"], + \["keyword-argument-name-package:any", "iss208.htm"], + \["last-n", "iss209.htm"], + \["lcm-no-arguments:1", "iss210.htm"], + \["lexical-construct-global-definition:undefined", "iss211.htm"], + \["lisp-package-name:common-lisp", "iss212.htm"], + \["lisp-symbol-redefinition-again:more-fixes", "iss213.htm"], + \["lisp-symbol-redefinition:mar89-x3j13", "iss214.htm"], + \["load-objects:make-load-form", "iss215.htm"], + \["load-time-eval:r**2-new-special-form", "iss216.htm"], + \["load-time-eval:r**3-new-special-form", "iss217.htm"], + \["load-truename:new-pathname-variables", "iss218.htm"], + \["locally-top-level:special-form", "iss219.htm"], + \["loop-and-discrepancy:no-reiteration", "iss220.htm"], + \["loop-for-as-on-typo:fix-typo", "iss221.htm"], + \["loop-initform-environment:partial-interleaving-vague", "iss222.htm"], + \["loop-miscellaneous-repairs:fix", "iss223.htm"], + \["loop-named-block-nil:override", "iss224.htm"], + \["loop-present-symbols-typo:flush-wrong-words", "iss225.htm"], + \["loop-syntax-overhaul:repair", "iss226.htm"], + \["macro-as-function:disallow", "iss227.htm"], + \["macro-declarations:make-explicit", "iss228.htm"], + \["macro-environment-extent:dynamic", "iss229.htm"], + \["macro-function-environment", "iss230.htm"], + \["macro-function-environment:yes", "iss231.htm"], + \["macro-subforms-top-level-p:add-constraints", "iss232.htm"], + \["macroexpand-hook-default:explicitly-vague", "iss233.htm"], + \["macroexpand-hook-initial-value:implementation-dependent", "iss234.htm"], + \["macroexpand-return-value:true", "iss235.htm"], + \["make-load-form-confusion:rewrite", "iss236.htm"], + \["make-load-form-saving-slots:no-initforms", "iss237.htm"], + \["make-package-use-default:implementation-dependent", "iss238.htm"], + \["map-into:add-function", "iss239.htm"], + \["mapping-destructive-interaction:explicitly-vague", "iss240.htm"], + \["metaclass-of-system-class:unspecified", "iss241.htm"], + \["method-combination-arguments:clarify", "iss242.htm"], + \["method-initform:forbid-call-next-method", "iss243.htm"], + \["muffle-warning-condition-argument", "iss244.htm"], + \["multiple-value-setq-order:like-setf-of-values", "iss245.htm"], + \["multiple-values-limit-on-variables:undefined", "iss246.htm"], + \["nintersection-destruction", "iss247.htm"], + \["nintersection-destruction:revert", "iss248.htm"], + \["not-and-null-return-value:x3j13-mar-93", "iss249.htm"], + \["nth-value:add", "iss250.htm"], + \["optimize-debug-info:new-quality", "iss251.htm"], + \["package-clutter:reduce", "iss252.htm"], + \["package-deletion:new-function", "iss253.htm"], + \["package-function-consistency:more-permissive", "iss254.htm"], + \["parse-error-stream:split-types", "iss255.htm"], + \["pathname-component-case:keyword-argument", "iss256.htm"], + \["pathname-component-value:specify", "iss257.htm"], + \["pathname-host-parsing:recognize-logical-host-names", "iss258.htm"], + \["pathname-logical:add", "iss259.htm"], + \["pathname-print-read:sharpsign-p", "iss260.htm"], + \["pathname-stream", "iss261.htm"], + \["pathname-stream:files-or-synonym", "iss262.htm"], + \["pathname-subdirectory-list:new-representation", "iss263.htm"], + \["pathname-symbol", "iss264.htm"], + \["pathname-syntax-error-time:explicitly-vague", "iss265.htm"], + \["pathname-unspecific-component:new-token", "iss266.htm"], + \["pathname-wild:new-functions", "iss267.htm"], + \["peek-char-read-char-echo:first-read-char", "iss268.htm"], + \["plist-duplicates:allow", "iss269.htm"], + \["pretty-print-interface", "iss270.htm"], + \["princ-readably:x3j13-dec-91", "iss271.htm"], + \["print-case-behavior:clarify", "iss272.htm"], + \["print-case-print-escape-interaction:vertical-bar-rule-no-upcase", "iss273.htm"], + \["print-circle-shared:respect-print-circle", "iss274.htm"], + \["print-circle-structure:user-functions-work", "iss275.htm"], + \["print-readably-behavior:clarify", "iss276.htm"], + \["printer-whitespace:just-one-space", "iss277.htm"], + \["proclaim-etc-in-compile-file:new-macro", "iss278.htm"], + \["push-evaluation-order:first-item", "iss279.htm"], + \["push-evaluation-order:item-first", "iss280.htm"], + \["pushnew-store-required:unspecified", "iss281.htm"], + \["quote-semantics:no-copying", "iss282.htm"], + \["range-of-count-keyword:nil-or-integer", "iss283.htm"], + \["range-of-start-and-end-parameters:integer-and-integer-nil", "iss284.htm"], + \["read-and-write-bytes:new-functions", "iss285.htm"], + \["read-case-sensitivity:readtable-keywords", "iss286.htm"], + \["read-modify-write-evaluation-order:delayed-access-stores", "iss287.htm"], + \["read-suppress-confusing:generalize", "iss288.htm"], + \["reader-error:new-type", "iss289.htm"], + \["real-number-type:x3j13-mar-89", "iss290.htm"], + \["recursive-deftype:explicitly-vague", "iss291.htm"], + \["reduce-argument-extraction", "iss292.htm"], + \["remf-destruction-unspecified:x3j13-mar-89", "iss293.htm"], + \["require-pathname-defaults-again:x3j13-dec-91", "iss294.htm"], + \["require-pathname-defaults-yet-again:restore-argument", "iss295.htm"], + \["require-pathname-defaults:eliminate", "iss296.htm"], + \["rest-list-allocation:may-share", "iss297.htm"], + \["result-lists-shared:specify", "iss298.htm"], + \["return-values-unspecified:specify", "iss299.htm"], + \["room-default-argument:new-value", "iss300.htm"], + \["self-modifying-code:forbid", "iss301.htm"], + \["sequence-type-length:must-match", "iss302.htm"], + \["setf-apply-expansion:ignore-expander", "iss303.htm"], + \["setf-find-class:allow-nil", "iss304.htm"], + \["setf-functions-again:minimal-changes", "iss305.htm"], + \["setf-get-default:evaluated-but-ignored", "iss306.htm"], + \["setf-macro-expansion:last", "iss307.htm"], + \["setf-method-vs-setf-method:rename-old-terms", "iss308.htm"], + \["setf-multiple-store-variables:allow", "iss309.htm"], + \["setf-of-apply:only-aref-and-friends", "iss310.htm"], + \["setf-of-values:add", "iss311.htm"], + \["setf-sub-methods:delayed-access-stores", "iss312.htm"], + \["shadow-already-present", "iss313.htm"], + \["shadow-already-present:works", "iss314.htm"], + \["sharp-comma-confusion:remove", "iss315.htm"], + \["sharp-o-foobar:consequences-undefined", "iss316.htm"], + \["sharp-star-delimiter:normal-delimiter", "iss317.htm"], + \["sharpsign-plus-minus-package:keyword", "iss318.htm"], + \["slot-missing-values:specify", "iss319.htm"], + \["slot-value-metaclasses:less-minimal", "iss320.htm"], + \["special-form-p-misnomer:rename", "iss321.htm"], + \["special-type-shadowing:clarify", "iss322.htm"], + \["standard-input-initial-binding:defined-contracts", "iss323.htm"], + \["standard-repertoire-gratuitous:rename", "iss324.htm"], + \["step-environment:current", "iss325.htm"], + \["step-minimal:permit-progn", "iss326.htm"], + \["stream-access:add-types-accessors", "iss327.htm"], + \["stream-capabilities:interactive-stream-p", "iss328.htm"], + \["string-coercion:make-consistent", "iss329.htm"], + \["string-output-stream-bashing:undefined", "iss330.htm"], + \["structure-read-print-syntax:keywords", "iss331.htm"], + \["subseq-out-of-bounds", "iss332.htm"], + \["subseq-out-of-bounds:is-an-error", "iss333.htm"], + \["subsetting-position:none", "iss334.htm"], + \["subtypep-environment:add-arg", "iss335.htm"], + \["subtypep-too-vague:clarify-more", "iss336.htm"], + \["sxhash-definition:similar-for-sxhash", "iss337.htm"], + \["symbol-macrolet-declare:allow", "iss338.htm"], + \["symbol-macrolet-semantics:special-form", "iss339.htm"], + \["symbol-macrolet-type-declaration:no", "iss340.htm"], + \["symbol-macros-and-proclaimed-specials:signals-an-error", "iss341.htm"], + \["symbol-print-escape-behavior:clarify", "iss342.htm"], + \["syntactic-environment-access:retracted-mar91", "iss343.htm"], + \["tagbody-tag-expansion:no", "iss344.htm"], + \["tailp-nil:t", "iss345.htm"], + \["test-not-if-not:flush-all", "iss346.htm"], + \["the-ambiguity:for-declaration", "iss347.htm"], + \["the-values:return-number-received", "iss348.htm"], + \["time-zone-non-integer:allow", "iss349.htm"], + \["type-declaration-abbreviation:allow-all", "iss350.htm"], + \["type-of-and-predefined-classes:type-of-handles-floats", "iss351.htm"], + \["type-of-and-predefined-classes:unify-and-extend", "iss352.htm"], + \["type-of-underconstrained:add-constraints", "iss353.htm"], + \["type-specifier-abbreviation:x3j13-jun90-guess", "iss354.htm"], + \["undefined-variables-and-functions:compromise", "iss355.htm"], + \["uninitialized-elements:consequences-undefined", "iss356.htm"], + \["unread-char-after-peek-char:dont-allow", "iss357.htm"], + \["unsolicited-messages:not-to-system-user-streams", "iss358.htm"], + \["variable-list-asymmetry:symmetrize", "iss359.htm"], + \["with-added-methods:delete", "iss360.htm"], + \["with-compilation-unit:new-macro", "iss361.htm"], + \["with-open-file-does-not-exist:stream-is-nil", "iss362.htm"], + \["with-open-file-setq:explicitly-vague", "iss363.htm"], + \["with-open-file-stream-extent:dynamic-extent", "iss364.htm"], + \["with-output-to-string-append-style:vector-push-extend", "iss365.htm"], + \["with-standard-io-syntax-readtable:x3j13-mar-91", "iss366.htm"]] +endif + +if !exists( 'g:slimv_clhs_chapters' ) + let g:slimv_clhs_chapters = [ + \["[index]", "../Front/Contents.htm"], + \["[introduction]", "01_.htm"], + \["[syntax]", "02_.htm"], + \["[evaluation and compilation]", "03_.htm"], + \["[types and classes]", "04_.htm"], + \["[data and control flow]", "05_.htm"], + \["[iteration]", "06_.htm"], + \["[objects]", "07_.htm"], + \["[structures]", "08_.htm"], + \["[conditions]", "09_.htm"], + \["[symbols]", "10_.htm"], + \["[packages]", "11_.htm"], + \["[numbers]", "12_.htm"], + \["[characters]", "13_.htm"], + \["[conses]", "14_.htm"], + \["[arrays]", "15_.htm"], + \["[strings]", "16_.htm"], + \["[sequences]", "17_.htm"], + \["[hash tables]", "18_.htm"], + \["[filenames]", "19_.htm"], + \["[files]", "20_.htm"], + \["[streams]", "21_.htm"], + \["[printer]", "22_.htm"], + \["[reader]", "23_.htm"], + \["[system construction]", "24_.htm"], + \["[environment]", "25_.htm"], + \["[glossary]", "26_.htm"]] +endif + +if !exists( 'g:slimv_clhs_control_chars' ) + let g:slimv_clhs_control_chars = [ + \["~C: Character", "22_caa.htm"], + \["~%: Newline", "22_cab.htm"], + \["~&: Freshline", "22_cac.htm"], + \["~|: Page", "22_cad.htm"], + \["~~: Tilde", "22_cae.htm"], + \["~R: Radix", "22_cba.htm"], + \["~D: Decimal", "22_cbb.htm"], + \["~B: Binary", "22_cbc.htm"], + \["~O: Octal", "22_cbd.htm"], + \["~X: Hexadecimal", "22_cbe.htm"], + \["~F: Fixed-Format Floating-Point", "22_cca.htm"], + \["~E: Exponential Floating-Point", "22_ccb.htm"], + \["~G: General Floating-Point", "22_ccc.htm"], + \["~$: Monetary Floating-Point", "22_ccd.htm"], + \["~A: Aesthetic", "22_cda.htm"], + \["~S: Standard", "22_cdb.htm"], + \["~W: Write", "22_cdc.htm"], + \["~_: Conditional Newline", "22_cea.htm"], + \["~<: Logical Block", "22_ceb.htm"], + \["~I: Indent", "22_cec.htm"], + \["~/: Call Function", "22_ced.htm"], + \["~T: Tabulate", "22_cfa.htm"], + \["~<: Justification", "22_cfb.htm"], + \["~>: End of Justification", "22_cfc.htm"], + \["~*: Go-To", "22_cga.htm"], + \["~[: Conditional Expression", "22_cgb.htm"], + \["~]: End of Conditional Expression", "22_cgc.htm"], + \["~{: Iteration", "22_cgd.htm"], + \["~}: End of Iteration", "22_cge.htm"], + \["~?: Recursive Processing", "22_cgf.htm"], + \["~(: Case Conversion", "22_cha.htm"], + \["~): End of Case Conversion", "22_chb.htm"], + \["~P: Plural", "22_chc.htm"], + \["~;: Clause Separator", "22_cia.htm"], + \["~^: Escape Upward", "22_cib.htm"], + \["~NEWLINE: Ignored Newline", "22_cic.htm"]] +endif + +if !exists( 'g:slimv_clhs_macro_chars' ) + let g:slimv_clhs_macro_chars = [ + \["(", "02_da.htm"], + \[")", "02_db.htm"], + \["'", "02_dc.htm"], + \[";", "02_dd.htm"], + \['"', "02_de.htm"], + \["`", "02_df.htm"], + \[",", "02_dg.htm"], + \["#", "02_dh.htm"], + \["#\\", "02_dha.htm"], + \["#'", "02_dhb.htm"], + \["#(", "02_dhc.htm"], + \["#*", "02_dhd.htm"], + \["#:", "02_dhe.htm"], + \["#.", "02_dhf.htm"], + \["#b", "02_dhg.htm"], + \["#o", "02_dhh.htm"], + \["#x", "02_dhi.htm"], + \["#r", "02_dhj.htm"], + \["#c", "02_dhk.htm"], + \["#a", "02_dhl.htm"], + \["#s", "02_dhm.htm"], + \["#p", "02_dhn.htm"], + \["#=", "02_dho.htm"], + \["##", "02_dhp.htm"], + \["#+", "02_dhq.htm"], + \["#-", "02_dhr.htm"], + \["#|", "02_dhs.htm"], + \["#<", "02_dht.htm"]] +endif + +if !exists( 'g:slimv_clhs_loop' ) + let g:slimv_clhs_loop = [ + \["loop:with", "06_abb.htm"], + \["loop:for-as", "06_aba.htm"], + \["loop:for-as-arithmetic", "06_abaa.htm"], + \["loop:for-as-in-list", "06_abab.htm"], + \["loop:for-as-on-list", "06_abac.htm"], + \["loop:for-as-equals-then", "06_abad.htm"], + \["loop:for-as-across", "06_abae.htm"], + \["loop:for-as-hash", "06_abaf.htm"], + \["loop:for-as-package", "06_abag.htm"], + \["loop:collect", "06_ac.htm"], + \["loop:append", "06_ac.htm"], + \["loop:nconc", "06_ac.htm"], + \["loop:count", "06_ac.htm"], + \["loop:maximize", "06_ac.htm"], + \["loop:minimize", "06_ac.htm"], + \["loop:sum", "06_ac.htm"], + \["loop:repeat", "06_ad.htm"], + \["loop:always", "06_ad.htm"], + \["loop:never", "06_ad.htm"], + \["loop:thereis", "06_ad.htm"], + \["loop:while", "06_ad.htm"], + \["loop:until", "06_ad.htm"], + \["loop:do", "06_ae.htm"], + \["loop:return", "06_ae.htm"], + \["loop:if", "06_af.htm"], + \["loop:when", "06_af.htm"], + \["loop:unless", "06_af.htm"], + \["loop:else", "06_af.htm"], + \["loop:it", "06_af.htm"], + \["loop:end", "06_af.htm"], + \["loop:named", "06_aga.htm"], + \["loop:initially", "06_agb.htm"], + \["loop:finally", "06_agb.htm"]] +endif + +if !exists( 'g:slimv_clhs_arguments' ) + let g:slimv_clhs_arguments = [ + \[":test", "17_ba.htm"], + \[":test-not", "17_ba.htm"], + \[":key", "17_bb.htm"], + \[":eof-error-p", "23_aca.htm"], + \[":recursive-p", "23_acb.htm"], + \[":case", "19_bbab.htm"], + \["&allow-other-keys", "03_dada.htm"], + \[":allow-other-keys", "03_dada.htm"]] +endif + +if !exists( 'g:slimv_clhs_glossary' ) + let g:slimv_clhs_glossary = [ + \["{()}", "26_glo_9.htm\\#OPCP"], + \["{absolute}", "26_glo_a.htm\\#absolute"], + \["{access}", "26_glo_a.htm\\#access"], + \["{accessibility}", "26_glo_a.htm\\#accessibility"], + \["{accessible}", "26_glo_a.htm\\#accessible"], + \["{accessor}", "26_glo_a.htm\\#accessor"], + \["{active}", "26_glo_a.htm\\#active"], + \["{actual adjustability}", "26_glo_a.htm\\#actual_adjustability"], + \["{actual argument}", "26_glo_a.htm\\#actual_argument"], + \["{actual array element type}", "26_glo_a.htm\\#actual_array_element_type"], + \["{actual complex part type}", "26_glo_a.htm\\#actual_complex_part_type"], + \["{actual parameter}", "26_glo_a.htm\\#actual_parameter"], + \["{actually adjustable}", "26_glo_a.htm\\#actually_adjustable"], + \["{adjustability}", "26_glo_a.htm\\#adjustability"], + \["{adjustable}", "26_glo_a.htm\\#adjustable"], + \["{after method}", "26_glo_a.htm\\#after_method"], + \["{alist}", "26_glo_a.htm\\#alist"], + \["{alphabetic}", "26_glo_a.htm\\#alphabetic"], + \["{alphanumeric}", "26_glo_a.htm\\#alphanumeric"], + \["{ampersand}", "26_glo_a.htm\\#ampersand"], + \["{anonymous}", "26_glo_a.htm\\#anonymous"], + \["{apparently uninterned}", "26_glo_a.htm\\#apparently_uninterned"], + \["{applicable}", "26_glo_a.htm\\#applicable"], + \["{applicable handler}", "26_glo_a.htm\\#applicable_handler"], + \["{applicable method}", "26_glo_a.htm\\#applicable_method"], + \["{applicable restart}", "26_glo_a.htm\\#applicable_restart"], + \["{apply}", "26_glo_a.htm\\#apply"], + \["{argument}", "26_glo_a.htm\\#argument"], + \["{argument evaluation order}", "26_glo_a.htm\\#argument_evaluation_order"], + \["{argument precedence order}", "26_glo_a.htm\\#argument_precedence_order"], + \["{around method}", "26_glo_a.htm\\#around_method"], + \["{array}", "26_glo_a.htm\\#array"], + \["{array element type}", "26_glo_a.htm\\#array_element_type"], + \["{array total size}", "26_glo_a.htm\\#array_total_size"], + \["{assign}", "26_glo_a.htm\\#assign"], + \["{association list}", "26_glo_a.htm\\#association_list"], + \["{asterisk}", "26_glo_a.htm\\#asterisk"], + \["{at-sign}", "26_glo_a.htm\\#at-sign"], + \["{atom}", "26_glo_a.htm\\#atom"], + \["{atomic}", "26_glo_a.htm\\#atomic"], + \["{atomic type specifier}", "26_glo_a.htm\\#atomic_type_specifier"], + \["{attribute}", "26_glo_a.htm\\#attribute"], + \["{aux variable}", "26_glo_a.htm\\#aux_variable"], + \["{auxiliary method}", "26_glo_a.htm\\#auxiliary_method"], + \["{backquote}", "26_glo_b.htm\\#backquote"], + \["{backslash}", "26_glo_b.htm\\#backslash"], + \["{base character}", "26_glo_b.htm\\#base_character"], + \["{base string}", "26_glo_b.htm\\#base_string"], + \["{before method}", "26_glo_b.htm\\#before_method"], + \["{bidirectional}", "26_glo_b.htm\\#bidirectional"], + \["{binary}", "26_glo_b.htm\\#binary"], + \["{bind}", "26_glo_b.htm\\#bind"], + \["{binding}", "26_glo_b.htm\\#binding"], + \["{bit}", "26_glo_b.htm\\#bit"], + \["{bit array}", "26_glo_b.htm\\#bit_array"], + \["{bit vector}", "26_glo_b.htm\\#bit_vector"], + \["{bit-wise logical operation specifier}", "26_glo_b.htm\\#bit-wise_logical_operation_specifier"], + \["{block}", "26_glo_b.htm\\#block"], + \["{block tag}", "26_glo_b.htm\\#block_tag"], + \["{boa lambda list}", "26_glo_b.htm\\#boa_lambda_list"], + \["{body parameter}", "26_glo_b.htm\\#body_parameter"], + \["{boolean}", "26_glo_b.htm\\#boolean"], + \["{boolean equivalent}", "26_glo_b.htm\\#boolean_equivalent"], + \["{bound}", "26_glo_b.htm\\#bound"], + \["{bound declaration}", "26_glo_b.htm\\#bound_declaration"], + \["{bounded}", "26_glo_b.htm\\#bounded"], + \["{bounding index}", "26_glo_b.htm\\#bounding_index"], + \["{bounding index designator}", "26_glo_b.htm\\#bounding_index_designator"], + \["{break loop}", "26_glo_b.htm\\#break_loop"], + \["{broadcast stream}", "26_glo_b.htm\\#broadcast_stream"], + \["{built-in class}", "26_glo_b.htm\\#built-in_class"], + \["{built-in type}", "26_glo_b.htm\\#built-in_type"], + \["{byte}", "26_glo_b.htm\\#byte"], + \["{byte specifier}", "26_glo_b.htm\\#byte_specifier"], + \["{cadr}", "26_glo_c.htm\\#cadr"], + \["{call}", "26_glo_c.htm\\#call"], + \["{captured initialization form}", "26_glo_c.htm\\#captured_initialization_form"], + \["{car}", "26_glo_c.htm\\#car"], + \["{case}", "26_glo_c.htm\\#case"], + \["{case sensitivity mode}", "26_glo_c.htm\\#case_sensitivity_mode"], + \["{catch}", "26_glo_c.htm\\#catch"], + \["{catch tag}", "26_glo_c.htm\\#catch_tag"], + \["{cddr}", "26_glo_c.htm\\#cddr"], + \["{cdr}", "26_glo_c.htm\\#cdr"], + \["{cell}", "26_glo_c.htm\\#cell"], + \["{character}", "26_glo_c.htm\\#character"], + \["{character code}", "26_glo_c.htm\\#character_code"], + \["{character designator}", "26_glo_c.htm\\#character_designator"], + \["{circular}", "26_glo_c.htm\\#circular"], + \["{circular list}", "26_glo_c.htm\\#circular_list"], + \["{class}", "26_glo_c.htm\\#class"], + \["{class designator}", "26_glo_c.htm\\#class_designator"], + \["{class precedence list}", "26_glo_c.htm\\#class_precedence_list"], + \["{close}", "26_glo_c.htm\\#close"], + \["{closed}", "26_glo_c.htm\\#closed"], + \["{closure}", "26_glo_c.htm\\#closure"], + \["{coalesce}", "26_glo_c.htm\\#coalesce"], + \["{code}", "26_glo_c.htm\\#code"], + \["{coerce}", "26_glo_c.htm\\#coerce"], + \["{colon}", "26_glo_c.htm\\#colon"], + \["{comma}", "26_glo_c.htm\\#comma"], + \["{compilation}", "26_glo_c.htm\\#compilation"], + \["{compilation environment}", "26_glo_c.htm\\#compilation_environment"], + \["{compilation unit}", "26_glo_c.htm\\#compilation_unit"], + \["{compile}", "26_glo_c.htm\\#compile"], + \["{compile time}", "26_glo_c.htm\\#compile_time"], + \["{compile time definition}", "26_glo_c.htm\\#compile-time_definition"], + \["{compiled code}", "26_glo_c.htm\\#compiled_code"], + \["{compiled file}", "26_glo_c.htm\\#compiled_file"], + \["{compiled function}", "26_glo_c.htm\\#compiled_function"], + \["{compiler}", "26_glo_c.htm\\#compiler"], + \["{compiler macro}", "26_glo_c.htm\\#compiler_macro"], + \["{compiler macro expansion}", "26_glo_c.htm\\#compiler_macro_expansion"], + \["{compiler macro form}", "26_glo_c.htm\\#compiler_macro_form"], + \["{compiler macro function}", "26_glo_c.htm\\#compiler_macro_function"], + \["{complex}", "26_glo_c.htm\\#complex"], + \["{complex float}", "26_glo_c.htm\\#complex_float"], + \["{complex part type}", "26_glo_c.htm\\#complex_part_type"], + \["{complex rational}", "26_glo_c.htm\\#complex_rational"], + \["{complex single float}", "26_glo_c.htm\\#complex_single_float"], + \["{composite stream}", "26_glo_c.htm\\#composite_stream"], + \["{compound form}", "26_glo_c.htm\\#compound_form"], + \["{compound type specifier}", "26_glo_c.htm\\#compound_type_specifier"], + \["{concatenated stream}", "26_glo_c.htm\\#concatenated_stream"], + \["{condition}", "26_glo_c.htm\\#condition"], + \["{condition designator}", "26_glo_c.htm\\#condition_designator"], + \["{condition handler}", "26_glo_c.htm\\#condition_handler"], + \["{condition reporter}", "26_glo_c.htm\\#condition_reporter"], + \["{conditional newline}", "26_glo_c.htm\\#conditional_newline"], + \["{conformance}", "26_glo_c.htm\\#conformance"], + \["{conforming code}", "26_glo_c.htm\\#conforming_code"], + \["{conforming implementation}", "26_glo_c.htm\\#conforming_implementation"], + \["{conforming processor}", "26_glo_c.htm\\#conforming_processor"], + \["{conforming program}", "26_glo_c.htm\\#conforming_program"], + \["{congruent}", "26_glo_c.htm\\#congruent"], + \["{cons}", "26_glo_c.htm\\#cons"], + \["{constant}", "26_glo_c.htm\\#constant"], + \["{constant form}", "26_glo_c.htm\\#constant_form"], + \["{constant object}", "26_glo_c.htm\\#constant_object"], + \["{constant variable}", "26_glo_c.htm\\#constant_variable"], + \["{constituent}", "26_glo_c.htm\\#constituent"], + \["{constituent trait}", "26_glo_c.htm\\#constituent_trait"], + \["{constructed stream}", "26_glo_c.htm\\#constructed_stream"], + \["{contagion}", "26_glo_c.htm\\#contagion"], + \["{continuable}", "26_glo_c.htm\\#continuable"], + \["{control form}", "26_glo_c.htm\\#control_form"], + \["{copy}", "26_glo_c.htm\\#copy"], + \["{correctable}", "26_glo_c.htm\\#correctable"], + \["{current input base}", "26_glo_c.htm\\#current_input_base"], + \["{current logical block}", "26_glo_c.htm\\#current_logical_block"], + \["{current output base}", "26_glo_c.htm\\#current_output_base"], + \["{current package}", "26_glo_c.htm\\#current_package"], + \["{current pprint dispatch table}", "26_glo_c.htm\\#current_pprint_dispatch_table"], + \["{current random state}", "26_glo_c.htm\\#current_random_state"], + \["{current readtable}", "26_glo_c.htm\\#current_readtable"], + \["{data type}", "26_glo_d.htm\\#data_type"], + \["{debug I/O}", "26_glo_d.htm\\#debug_iSLo"], + \["{debugger}", "26_glo_d.htm\\#debugger"], + \["{declaration}", "26_glo_d.htm\\#declaration"], + \["{declaration identifier}", "26_glo_d.htm\\#declaration_identifier"], + \["{declaration specifier}", "26_glo_d.htm\\#declaration_specifier"], + \["{declare}", "26_glo_d.htm\\#declare"], + \["{decline}", "26_glo_d.htm\\#decline"], + \["{decoded time}", "26_glo_d.htm\\#decoded_time"], + \["{default method}", "26_glo_d.htm\\#default_method"], + \["{defaulted initialization argument list}", "26_glo_d.htm\\#defaulted_initialization_argument_list"], + \["{define-method-combination arguments lambda list}", "26_glo_d.htm\\#define-method-combination_arguments_lambda_list"], + \["{define-modify-macro lambda list}", "26_glo_d.htm\\#define-modify-macro_lambda_list"], + \["{defined name}", "26_glo_d.htm\\#defined_name"], + \["{defining form}", "26_glo_d.htm\\#defining_form"], + \["{defsetf lambda list}", "26_glo_d.htm\\#defsetf_lambda_list"], + \["{deftype lambda list}", "26_glo_d.htm\\#deftype_lambda_list"], + \["{denormalized}", "26_glo_d.htm\\#denormalized"], + \["{derived type}", "26_glo_d.htm\\#derived_type"], + \["{derived type specifier}", "26_glo_d.htm\\#derived_type_specifier"], + \["{designator}", "26_glo_d.htm\\#designator"], + \["{destructive}", "26_glo_d.htm\\#destructive"], + \["{destructuring lambda list}", "26_glo_d.htm\\#destructuring_lambda_list"], + \["{different}", "26_glo_d.htm\\#different"], + \["{digit}", "26_glo_d.htm\\#digit"], + \["{dimension}", "26_glo_d.htm\\#dimension"], + \["{direct instance}", "26_glo_d.htm\\#direct_instance"], + \["{direct subclass}", "26_glo_d.htm\\#direct_subclass"], + \["{direct superclass}", "26_glo_d.htm\\#direct_superclass"], + \["{disestablish}", "26_glo_d.htm\\#disestablish"], + \["{disjoint}", "26_glo_d.htm\\#disjoint"], + \["{dispatching macro character}", "26_glo_d.htm\\#dispatching_macro_character"], + \["{displaced array}", "26_glo_d.htm\\#displaced_array"], + \["{distinct}", "26_glo_d.htm\\#distinct"], + \["{documentation string}", "26_glo_d.htm\\#documentation_string"], + \["{dot}", "26_glo_d.htm\\#dot"], + \["{dotted list}", "26_glo_d.htm\\#dotted_list"], + \["{dotted pair}", "26_glo_d.htm\\#dotted_pair"], + \["{double float}", "26_glo_d.htm\\#double_float"], + \["{double-quote}", "26_glo_d.htm\\#double-quote"], + \["{dynamic binding}", "26_glo_d.htm\\#dynamic_binding"], + \["{dynamic environment}", "26_glo_d.htm\\#dynamic_environment"], + \["{dynamic extent}", "26_glo_d.htm\\#dynamic_extent"], + \["{dynamic scope}", "26_glo_d.htm\\#dynamic_scope"], + \["{dynamic variable}", "26_glo_d.htm\\#dynamic_variable"], + \["{echo stream}", "26_glo_e.htm\\#echo_stream"], + \["{effective method}", "26_glo_e.htm\\#effective_method"], + \["{element}", "26_glo_e.htm\\#element"], + \["{element type}", "26_glo_e.htm\\#element_type"], + \["{em}", "26_glo_e.htm\\#em"], + \["{empty list}", "26_glo_e.htm\\#empty_list"], + \["{empty type}", "26_glo_e.htm\\#empty_type"], + \["{end of file}", "26_glo_e.htm\\#end_of_file"], + \["{environment}", "26_glo_e.htm\\#environment"], + \["{environment object}", "26_glo_e.htm\\#environment_object"], + \["{environment parameter}", "26_glo_e.htm\\#environment_parameter"], + \["{error}", "26_glo_e.htm\\#error"], + \["{error output}", "26_glo_e.htm\\#error_output"], + \["{escape}", "26_glo_e.htm\\#escape"], + \["{establish}", "26_glo_e.htm\\#establish"], + \["{evaluate}", "26_glo_e.htm\\#evaluate"], + \["{evaluation}", "26_glo_e.htm\\#evaluation"], + \["{evaluation environment}", "26_glo_e.htm\\#evaluation_environment"], + \["{execute}", "26_glo_e.htm\\#execute"], + \["{execution time}", "26_glo_e.htm\\#execution_time"], + \["{exhaustive partition}", "26_glo_e.htm\\#exhaustive_partition"], + \["{exhaustive union}", "26_glo_e.htm\\#exhaustive_union"], + \["{exit point}", "26_glo_e.htm\\#exit_point"], + \["{explicit return}", "26_glo_e.htm\\#explicit_return"], + \["{explicit use}", "26_glo_e.htm\\#explicit_use"], + \["{exponent marker}", "26_glo_e.htm\\#exponent_marker"], + \["{export}", "26_glo_e.htm\\#export"], + \["{exported}", "26_glo_e.htm\\#exported"], + \["{expressed adjustability}", "26_glo_e.htm\\#expressed_adjustability"], + \["{expressed array element type}", "26_glo_e.htm\\#expressed_array_element_type"], + \["{expressed complex part type}", "26_glo_e.htm\\#expressed_complex_part_type"], + \["{expression}", "26_glo_e.htm\\#expression"], + \["{expressly adjustable}", "26_glo_e.htm\\#expressly_adjustable"], + \["{extended character}", "26_glo_e.htm\\#extended_character"], + \["{extended function designator}", "26_glo_e.htm\\#extended_function_designator"], + \["{extended lambda list}", "26_glo_e.htm\\#extended_lambda_list"], + \["{extension}", "26_glo_e.htm\\#extension"], + \["{extent}", "26_glo_e.htm\\#extent"], + \["{external file format}", "26_glo_e.htm\\#external_file_format"], + \["{external file format designator}", "26_glo_e.htm\\#external_file_format_designator"], + \["{external symbol}", "26_glo_e.htm\\#external_symbol"], + \["{externalizable object}", "26_glo_e.htm\\#externalizable_object"], + \["{false}", "26_glo_f.htm\\#false"], + \["{fbound}", "26_glo_f.htm\\#fbound"], + \["{feature}", "26_glo_f.htm\\#feature"], + \["{feature expression}", "26_glo_f.htm\\#feature_expression"], + \["{features list}", "26_glo_f.htm\\#features_list"], + \["{file}", "26_glo_f.htm\\#file"], + \["{file compiler}", "26_glo_f.htm\\#file_compiler"], + \["{file position}", "26_glo_f.htm\\#file_position"], + \["{file position designator}", "26_glo_f.htm\\#file_position_designator"], + \["{file stream}", "26_glo_f.htm\\#file_stream"], + \["{file system}", "26_glo_f.htm\\#file_system"], + \["{filename}", "26_glo_f.htm\\#filename"], + \["{fill pointer}", "26_glo_f.htm\\#fill_pointer"], + \["{finite}", "26_glo_f.htm\\#finite"], + \["{fixnum}", "26_glo_f.htm\\#fixnum"], + \["{float}", "26_glo_f.htm\\#float"], + \["{for-value}", "26_glo_f.htm\\#for-value"], + \["{form}", "26_glo_f.htm\\#form"], + \["{formal argument}", "26_glo_f.htm\\#formal_argument"], + \["{formal parameter}", "26_glo_f.htm\\#formal_parameter"], + \["{format}", "26_glo_f.htm\\#format"], + \["{format argument}", "26_glo_f.htm\\#format_argument"], + \["{format control}", "26_glo_f.htm\\#format_control"], + \["{format directive}", "26_glo_f.htm\\#format_directive"], + \["{format string}", "26_glo_f.htm\\#format_string"], + \["{free declaration}", "26_glo_f.htm\\#free_declaration"], + \["{fresh}", "26_glo_f.htm\\#fresh"], + \["{freshline}", "26_glo_f.htm\\#freshline"], + \["{funbound}", "26_glo_f.htm\\#funbound"], + \["{function}", "26_glo_f.htm\\#function"], + \["{function block name}", "26_glo_f.htm\\#function_block_name"], + \["{function cell}", "26_glo_f.htm\\#function_cell"], + \["{function designator}", "26_glo_f.htm\\#function_designator"], + \["{function form}", "26_glo_f.htm\\#function_form"], + \["{function name}", "26_glo_f.htm\\#function_name"], + \["{functional evaluation}", "26_glo_f.htm\\#functional_evaluation"], + \["{functional value}", "26_glo_f.htm\\#functional_value"], + \["{further compilation}", "26_glo_f.htm\\#further_compilation"], + \["{general}", "26_glo_g.htm\\#general"], + \["{generalized boolean}", "26_glo_g.htm\\#generalized_boolean"], + \["{generalized instance}", "26_glo_g.htm\\#generalized_instance"], + \["{generalized reference}", "26_glo_g.htm\\#generalized_reference"], + \["{generalized synonym stream}", "26_glo_g.htm\\#generalized_synonym_stream"], + \["{generic function}", "26_glo_g.htm\\#generic_function"], + \["{generic function lambda list}", "26_glo_g.htm\\#generic_function_lambda_list"], + \["{gensym}", "26_glo_g.htm\\#gensym"], + \["{global declaration}", "26_glo_g.htm\\#global_declaration"], + \["{global environment}", "26_glo_g.htm\\#global_environment"], + \["{global variable}", "26_glo_g.htm\\#global_variable"], + \["{glyph}", "26_glo_g.htm\\#glyph"], + \["{go}", "26_glo_g.htm\\#go"], + \["{go point}", "26_glo_g.htm\\#go_point"], + \["{go tag}", "26_glo_g.htm\\#go_tag"], + \["{graphic}", "26_glo_g.htm\\#graphic"], + \["{handle}", "26_glo_h.htm\\#handle"], + \["{handler}", "26_glo_h.htm\\#handler"], + \["{hash table}", "26_glo_h.htm\\#hash_table"], + \["{home package}", "26_glo_h.htm\\#home_package"], + \["{I/O customization variable}", "26_glo_i.htm\\#iSLo_customization_variable"], + \["{identical}", "26_glo_i.htm\\#identical"], + \["{identifier}", "26_glo_i.htm\\#identifier"], + \["{immutable}", "26_glo_i.htm\\#immutable"], + \["{implementation}", "26_glo_i.htm\\#implementation"], + \["{implementation limit}", "26_glo_i.htm\\#implementation_limit"], + \["{implementation-defined}", "26_glo_i.htm\\#implementation-defined"], + \["{implementation-dependent}", "26_glo_i.htm\\#implementation-dependent"], + \["{implementation-independent}", "26_glo_i.htm\\#implementation-independent"], + \["{implicit block}", "26_glo_i.htm\\#implicit_block"], + \["{implicit compilation}", "26_glo_i.htm\\#implicit_compilation"], + \["{implicit progn}", "26_glo_i.htm\\#implicit_progn"], + \["{implicit tagbody}", "26_glo_i.htm\\#implicit_tagbody"], + \["{import}", "26_glo_i.htm\\#import"], + \["{improper list}", "26_glo_i.htm\\#improper_list"], + \["{inaccessible}", "26_glo_i.htm\\#inaccessible"], + \["{indefinite extent}", "26_glo_i.htm\\#indefinite_extent"], + \["{indefinite scope}", "26_glo_i.htm\\#indefinite_scope"], + \["{indicator}", "26_glo_i.htm\\#indicator"], + \["{indirect instance}", "26_glo_i.htm\\#indirect_instance"], + \["{inherit}", "26_glo_i.htm\\#inherit"], + \["{initial pprint dispatch table}", "26_glo_i.htm\\#initial_pprint_dispatch_table"], + \["{initial readtable}", "26_glo_i.htm\\#initial_readtable"], + \["{initialization argument list}", "26_glo_i.htm\\#initialization_argument_list"], + \["{initialization form}", "26_glo_i.htm\\#initialization_form"], + \["{input}", "26_glo_i.htm\\#input"], + \["{instance}", "26_glo_i.htm\\#instance"], + \["{integer}", "26_glo_i.htm\\#integer"], + \["{interactive stream}", "26_glo_i.htm\\#interactive_stream"], + \["{intern}", "26_glo_i.htm\\#intern"], + \["{internal symbol}", "26_glo_i.htm\\#internal_symbol"], + \["{internal time}", "26_glo_i.htm\\#internal_time"], + \["{internal time unit}", "26_glo_i.htm\\#internal_time_unit"], + \["{interned}", "26_glo_i.htm\\#interned"], + \["{interpreted function}", "26_glo_i.htm\\#interpreted_function"], + \["{interpreted implementation}", "26_glo_i.htm\\#interpreted_implementation"], + \["{interval designator}", "26_glo_i.htm\\#interval_designator"], + \["{invalid}", "26_glo_i.htm\\#invalid"], + \["{iteration form}", "26_glo_i.htm\\#iteration_form"], + \["{iteration variable}", "26_glo_i.htm\\#iteration_variable"], + \["{key}", "26_glo_k.htm\\#key"], + \["{keyword}", "26_glo_k.htm\\#keyword"], + \["{keyword parameter}", "26_glo_k.htm\\#keyword_parameter"], + \["{keyword/value pair}", "26_glo_k.htm\\#keywordSLvalue_pair"], + \["{lambda combination}", "26_glo_l.htm\\#lambda_combination"], + \["{lambda expression}", "26_glo_l.htm\\#lambda_expression"], + \["{lambda form}", "26_glo_l.htm\\#lambda_form"], + \["{lambda list}", "26_glo_l.htm\\#lambda_list"], + \["{lambda list keyword}", "26_glo_l.htm\\#lambda_list_keyword"], + \["{lambda variable}", "26_glo_l.htm\\#lambda_variable"], + \["{leaf}", "26_glo_l.htm\\#leaf"], + \["{leap seconds}", "26_glo_l.htm\\#leap_seconds"], + \["{left-parenthesis}", "26_glo_l.htm\\#left-parenthesis"], + \["{length}", "26_glo_l.htm\\#length"], + \["{lexical binding}", "26_glo_l.htm\\#lexical_binding"], + \["{lexical closure}", "26_glo_l.htm\\#lexical_closure"], + \["{lexical environment}", "26_glo_l.htm\\#lexical_environment"], + \["{lexical scope}", "26_glo_l.htm\\#lexical_scope"], + \["{lexical variable}", "26_glo_l.htm\\#lexical_variable"], + \["{lisp image}", "26_glo_l.htm\\#lisp_image"], + \["{lisp printer}", "26_glo_l.htm\\#lisp_printer"], + \["{lisp read-eval-print loop}", "26_glo_l.htm\\#lisp_read-eval-print_loop"], + \["{lisp reader}", "26_glo_l.htm\\#lisp_reader"], + \["{list}", "26_glo_l.htm\\#list"], + \["{list designator}", "26_glo_l.htm\\#list_designator"], + \["{list structure}", "26_glo_l.htm\\#list_structure"], + \["{literal}", "26_glo_l.htm\\#literal"], + \["{load}", "26_glo_l.htm\\#load"], + \["{load time}", "26_glo_l.htm\\#load_time"], + \["{load time value}", "26_glo_l.htm\\#load_time_value"], + \["{loader}", "26_glo_l.htm\\#loader"], + \["{local declaration}", "26_glo_l.htm\\#local_declaration"], + \["{local precedence order}", "26_glo_l.htm\\#local_precedence_order"], + \["{local slot}", "26_glo_l.htm\\#local_slot"], + \["{logical block}", "26_glo_l.htm\\#logical_block"], + \["{logical host}", "26_glo_l.htm\\#logical_host"], + \["{logical host designator}", "26_glo_l.htm\\#logical_host_designator"], + \["{logical pathname}", "26_glo_l.htm\\#logical_pathname"], + \["{long float}", "26_glo_l.htm\\#long_float"], + \["{loop keyword}", "26_glo_l.htm\\#loop_keyword"], + \["{lowercase}", "26_glo_l.htm\\#lowercase"], + \["{macro}", "26_glo_m.htm\\#macro"], + \["{macro character}", "26_glo_m.htm\\#macro_character"], + \["{macro expansion}", "26_glo_m.htm\\#macro_expansion"], + \["{macro form}", "26_glo_m.htm\\#macro_form"], + \["{macro function}", "26_glo_m.htm\\#macro_function"], + \["{macro lambda list}", "26_glo_m.htm\\#macro_lambda_list"], + \["{macro name}", "26_glo_m.htm\\#macro_name"], + \["{macroexpand hook}", "26_glo_m.htm\\#macroexpand_hook"], + \["{mapping}", "26_glo_m.htm\\#mapping"], + \["{metaclass}", "26_glo_m.htm\\#metaclass"], + \["{metaobject protocol}", "26_glo_m.htm\\#metaobject_protocol"], + \["{method}", "26_glo_m.htm\\#method"], + \["{method combination}", "26_glo_m.htm\\#method_combination"], + \["{method-defining form}", "26_glo_m.htm\\#method-defining_form"], + \["{method-defining operator}", "26_glo_m.htm\\#method-defining_operator"], + \["{minimal compilation}", "26_glo_m.htm\\#minimal_compilation"], + \["{modified lambda list}", "26_glo_m.htm\\#modified_lambda_list"], + \["{most recent}", "26_glo_m.htm\\#most_recent"], + \["{multiple escape}", "26_glo_m.htm\\#multiple_escape"], + \["{multiple values}", "26_glo_m.htm\\#multiple_values"], + \["{name}", "26_glo_n.htm\\#name"], + \["{named constant}", "26_glo_n.htm\\#named_constant"], + \["{namespace}", "26_glo_n.htm\\#namespace"], + \["{namestring}", "26_glo_n.htm\\#namestring"], + \["{newline}", "26_glo_n.htm\\#newline"], + \["{next method}", "26_glo_n.htm\\#next_method"], + \["{nickname}", "26_glo_n.htm\\#nickname"], + \["{nil}", "26_glo_n.htm\\#nil"], + \["{non-atomic}", "26_glo_n.htm\\#non-atomic"], + \["{non-constant variable}", "26_glo_n.htm\\#non-constant_variable"], + \["{non-correctable}", "26_glo_n.htm\\#non-correctable"], + \["{non-empty}", "26_glo_n.htm\\#non-empty"], + \["{non-generic function}", "26_glo_n.htm\\#non-generic_function"], + \["{non-graphic}", "26_glo_n.htm\\#non-graphic"], + \["{non-list}", "26_glo_n.htm\\#non-list"], + \["{non-local exit}", "26_glo_n.htm\\#non-local_exit"], + \["{non-nil}", "26_glo_n.htm\\#non-nil"], + \["{non-null lexical environment}", "26_glo_n.htm\\#non-null_lexical_environment"], + \["{non-simple}", "26_glo_n.htm\\#non-simple"], + \["{non-terminating}", "26_glo_n.htm\\#non-terminating"], + \["{non-top-level form}", "26_glo_n.htm\\#non-top-level_form"], + \["{normal return}", "26_glo_n.htm\\#normal_return"], + \["{normalized}", "26_glo_n.htm\\#normalized"], + \["{null}", "26_glo_n.htm\\#null"], + \["{null lexical environment}", "26_glo_n.htm\\#null_lexical_environment"], + \["{number}", "26_glo_n.htm\\#number"], + \["{numeric}", "26_glo_n.htm\\#numeric"], + \["{object}", "26_glo_o.htm\\#object"], + \["{object-traversing}", "26_glo_o.htm\\#object-traversing"], + \["{open}", "26_glo_o.htm\\#open"], + \["{operator}", "26_glo_o.htm\\#operator"], + \["{optimize quality}", "26_glo_o.htm\\#optimize_quality"], + \["{optional parameter}", "26_glo_o.htm\\#optional_parameter"], + \["{ordinary function}", "26_glo_o.htm\\#ordinary_function"], + \["{ordinary lambda list}", "26_glo_o.htm\\#ordinary_lambda_list"], + \["{otherwise inaccessible part}", "26_glo_o.htm\\#otherwise_inaccessible_part"], + \["{output}", "26_glo_o.htm\\#output"], + \["{package}", "26_glo_p.htm\\#package"], + \["{package cell}", "26_glo_p.htm\\#package_cell"], + \["{package designator}", "26_glo_p.htm\\#package_designator"], + \["{package marker}", "26_glo_p.htm\\#package_marker"], + \["{package prefix}", "26_glo_p.htm\\#package_prefix"], + \["{package registry}", "26_glo_p.htm\\#package_registry"], + \["{pairwise}", "26_glo_p.htm\\#pairwise"], + \["{parallel}", "26_glo_p.htm\\#parallel"], + \["{parameter}", "26_glo_p.htm\\#parameter"], + \["{parameter specializer}", "26_glo_p.htm\\#parameter_specializer"], + \["{parameter specializer name}", "26_glo_p.htm\\#parameter_specializer_name"], + \["{pathname}", "26_glo_p.htm\\#pathname"], + \["{pathname designator}", "26_glo_p.htm\\#pathname_designator"], + \["{physical pathname}", "26_glo_p.htm\\#physical_pathname"], + \["{place}", "26_glo_p.htm\\#place"], + \["{plist}", "26_glo_p.htm\\#plist"], + \["{portable}", "26_glo_p.htm\\#portable"], + \["{potential copy}", "26_glo_p.htm\\#potential_copy"], + \["{potential number}", "26_glo_p.htm\\#potential_number"], + \["{pprint dispatch table}", "26_glo_p.htm\\#pprint_dispatch_table"], + \["{predicate}", "26_glo_p.htm\\#predicate"], + \["{present}", "26_glo_p.htm\\#present"], + \["{pretty print}", "26_glo_p.htm\\#pretty_print"], + \["{pretty printer}", "26_glo_p.htm\\#pretty_printer"], + \["{pretty printing stream}", "26_glo_p.htm\\#pretty_printing_stream"], + \["{primary method}", "26_glo_p.htm\\#primary_method"], + \["{primary value}", "26_glo_p.htm\\#primary_value"], + \["{principal}", "26_glo_p.htm\\#principal"], + \["{print name}", "26_glo_p.htm\\#print_name"], + \["{printer control variable}", "26_glo_p.htm\\#printer_control_variable"], + \["{printer escaping}", "26_glo_p.htm\\#printer_escaping"], + \["{printing}", "26_glo_p.htm\\#printing"], + \["{process}", "26_glo_p.htm\\#process"], + \["{processor}", "26_glo_p.htm\\#processor"], + \["{proclaim}", "26_glo_p.htm\\#proclaim"], + \["{proclamation}", "26_glo_p.htm\\#proclamation"], + \["{prog tag}", "26_glo_p.htm\\#prog_tag"], + \["{program}", "26_glo_p.htm\\#program"], + \["{programmer}", "26_glo_p.htm\\#programmer"], + \["{programmer code}", "26_glo_p.htm\\#programmer_code"], + \["{proper list}", "26_glo_p.htm\\#proper_list"], + \["{proper name}", "26_glo_p.htm\\#proper_name"], + \["{proper sequence}", "26_glo_p.htm\\#proper_sequence"], + \["{proper subtype}", "26_glo_p.htm\\#proper_subtype"], + \["{property}", "26_glo_p.htm\\#property"], + \["{property indicator}", "26_glo_p.htm\\#property_indicator"], + \["{property list}", "26_glo_p.htm\\#property_list"], + \["{property value}", "26_glo_p.htm\\#property_value"], + \["{purports to conform}", "26_glo_p.htm\\#purports_to_conform"], + \["{qualified method}", "26_glo_q.htm\\#qualified_method"], + \["{qualifier}", "26_glo_q.htm\\#qualifier"], + \["{query I/O}", "26_glo_q.htm\\#query_iSLo"], + \["{quoted object}", "26_glo_q.htm\\#quoted_object"], + \["{radix}", "26_glo_r.htm\\#radix"], + \["{random state}", "26_glo_r.htm\\#random_state"], + \["{rank}", "26_glo_r.htm\\#rank"], + \["{ratio}", "26_glo_r.htm\\#ratio"], + \["{ratio marker}", "26_glo_r.htm\\#ratio_marker"], + \["{rational}", "26_glo_r.htm\\#rational"], + \["{read}", "26_glo_r.htm\\#read"], + \["{readably}", "26_glo_r.htm\\#readably"], + \["{reader}", "26_glo_r.htm\\#reader"], + \["{reader macro}", "26_glo_r.htm\\#reader_macro"], + \["{reader macro function}", "26_glo_r.htm\\#reader_macro_function"], + \["{readtable}", "26_glo_r.htm\\#readtable"], + \["{readtable case}", "26_glo_r.htm\\#readtable_case"], + \["{readtable designator}", "26_glo_r.htm\\#readtable_designator"], + \["{recognizable subtype}", "26_glo_r.htm\\#recognizable_subtype"], + \["{reference}", "26_glo_r.htm\\#reference"], + \["{registered package}", "26_glo_r.htm\\#registered_package"], + \["{relative}", "26_glo_r.htm\\#relative"], + \["{repertoire}", "26_glo_r.htm\\#repertoire"], + \["{report}", "26_glo_r.htm\\#report"], + \["{report message}", "26_glo_r.htm\\#report_message"], + \["{required parameter}", "26_glo_r.htm\\#required_parameter"], + \["{rest list}", "26_glo_r.htm\\#rest_list"], + \["{rest parameter}", "26_glo_r.htm\\#rest_parameter"], + \["{restart}", "26_glo_r.htm\\#restart"], + \["{restart designator}", "26_glo_r.htm\\#restart_designator"], + \["{restart function}", "26_glo_r.htm\\#restart_function"], + \["{return}", "26_glo_r.htm\\#return"], + \["{return value}", "26_glo_r.htm\\#return_value"], + \["{right-parenthesis}", "26_glo_r.htm\\#right-parenthesis"], + \["{run time}", "26_glo_r.htm\\#run_time"], + \["{run-time compiler}", "26_glo_r.htm\\#run-time_compiler"], + \["{run-time definition}", "26_glo_r.htm\\#run-time_definition"], + \["{run-time environment}", "26_glo_r.htm\\#run-time_environment"], + \["{safe}", "26_glo_s.htm\\#safe"], + \["{safe call}", "26_glo_s.htm\\#safe_call"], + \["{same}", "26_glo_s.htm\\#same"], + \["{satisfy the test}", "26_glo_s.htm\\#satisfy_the_test"], + \["{scope}", "26_glo_s.htm\\#scope"], + \["{script}", "26_glo_s.htm\\#script"], + \["{secondary value}", "26_glo_s.htm\\#secondary_value"], + \["{section}", "26_glo_s.htm\\#section"], + \["{self-evaluating object}", "26_glo_s.htm\\#self-evaluating_object"], + \["{semi-standard}", "26_glo_s.htm\\#semi-standard"], + \["{semicolon}", "26_glo_s.htm\\#semicolon"], + \["{sequence}", "26_glo_s.htm\\#sequence"], + \["{sequence function}", "26_glo_s.htm\\#sequence_function"], + \["{sequential}", "26_glo_s.htm\\#sequential"], + \["{sequentially}", "26_glo_s.htm\\#sequentially"], + \["{serious condition}", "26_glo_s.htm\\#serious_condition"], + \["{session}", "26_glo_s.htm\\#session"], + \["{set}", "26_glo_s.htm\\#set"], + \["{setf expander}", "26_glo_s.htm\\#setf_expander"], + \["{setf expansion}", "26_glo_s.htm\\#setf_expansion"], + \["{setf function}", "26_glo_s.htm\\#setf_function"], + \["{setf function name}", "26_glo_s.htm\\#setf_function_name"], + \["{shadow}", "26_glo_s.htm\\#shadow"], + \["{shadowing symbol}", "26_glo_s.htm\\#shadowing_symbol"], + \["{shadowing symbols list}", "26_glo_s.htm\\#shadowing_symbols_list"], + \["{shared slot}", "26_glo_s.htm\\#shared_slot"], + \["{sharpsign}", "26_glo_s.htm\\#sharpsign"], + \["{short float}", "26_glo_s.htm\\#short_float"], + \["{sign}", "26_glo_s.htm\\#sign"], + \["{signal}", "26_glo_s.htm\\#signal"], + \["{signature}", "26_glo_s.htm\\#signature"], + \["{similar}", "26_glo_s.htm\\#similar"], + \["{similarity}", "26_glo_s.htm\\#similarity"], + \["{simple}", "26_glo_s.htm\\#simple"], + \["{simple array}", "26_glo_s.htm\\#simple_array"], + \["{simple bit array}", "26_glo_s.htm\\#simple_bit_array"], + \["{simple bit vector}", "26_glo_s.htm\\#simple_bit_vector"], + \["{simple condition}", "26_glo_s.htm\\#simple_condition"], + \["{simple general vector}", "26_glo_s.htm\\#simple_general_vector"], + \["{simple string}", "26_glo_s.htm\\#simple_string"], + \["{simple vector}", "26_glo_s.htm\\#simple_vector"], + \["{single escape}", "26_glo_s.htm\\#single_escape"], + \["{single float}", "26_glo_s.htm\\#single_float"], + \["{single-quote}", "26_glo_s.htm\\#single-quote"], + \["{singleton}", "26_glo_s.htm\\#singleton"], + \["{situation}", "26_glo_s.htm\\#situation"], + \["{slash}", "26_glo_s.htm\\#slash"], + \["{slot}", "26_glo_s.htm\\#slot"], + \["{slot specifier}", "26_glo_s.htm\\#slot_specifier"], + \["{source code}", "26_glo_s.htm\\#source_code"], + \["{source file}", "26_glo_s.htm\\#source_file"], + \["{space}", "26_glo_s.htm\\#space"], + \["{special form}", "26_glo_s.htm\\#special_form"], + \["{special operator}", "26_glo_s.htm\\#special_operator"], + \["{special variable}", "26_glo_s.htm\\#special_variable"], + \["{specialize}", "26_glo_s.htm\\#specialize"], + \["{specialized}", "26_glo_s.htm\\#specialized"], + \["{specialized lambda list}", "26_glo_s.htm\\#specialized_lambda_list"], + \["{spreadable argument list designator}", "26_glo_s.htm\\#spreadable_argument_list_designator"], + \["{stack allocate}", "26_glo_s.htm\\#stack_allocate"], + \["{stack-allocated}", "26_glo_s.htm\\#stack-allocated"], + \["{standard character}", "26_glo_s.htm\\#standard_character"], + \["{standard class}", "26_glo_s.htm\\#standard_class"], + \["{standard generic function}", "26_glo_s.htm\\#standard_generic_function"], + \["{standard input}", "26_glo_s.htm\\#standard_input"], + \["{standard method combination}", "26_glo_s.htm\\#standard_method_combination"], + \["{standard object}", "26_glo_s.htm\\#standard_object"], + \["{standard output}", "26_glo_s.htm\\#standard_output"], + \["{standard pprint dispatch table}", "26_glo_s.htm\\#standard_pprint_dispatch_table"], + \["{standard readtable}", "26_glo_s.htm\\#standard_readtable"], + \["{standard syntax}", "26_glo_s.htm\\#standard_syntax"], + \["{standardized}", "26_glo_s.htm\\#standardized"], + \["{startup environment}", "26_glo_s.htm\\#startup_environment"], + \["{step}", "26_glo_s.htm\\#step"], + \["{stream}", "26_glo_s.htm\\#stream"], + \["{stream associated with a file}", "26_glo_s.htm\\#stream_associated_with_a_file"], + \["{stream designator}", "26_glo_s.htm\\#stream_designator"], + \["{stream element type}", "26_glo_s.htm\\#stream_element_type"], + \["{stream variable}", "26_glo_s.htm\\#stream_variable"], + \["{stream variable designator}", "26_glo_s.htm\\#stream_variable_designator"], + \["{string}", "26_glo_s.htm\\#string"], + \["{string designator}", "26_glo_s.htm\\#string_designator"], + \["{string equal}", "26_glo_s.htm\\#string_equal"], + \["{string stream}", "26_glo_s.htm\\#string_stream"], + \["{structure}", "26_glo_s.htm\\#structure"], + \["{structure class}", "26_glo_s.htm\\#structure_class"], + \["{structure name}", "26_glo_s.htm\\#structure_name"], + \["{style warning}", "26_glo_s.htm\\#style_warning"], + \["{subclass}", "26_glo_s.htm\\#subclass"], + \["{subexpression}", "26_glo_s.htm\\#subexpression"], + \["{subform}", "26_glo_s.htm\\#subform"], + \["{subrepertoire}", "26_glo_s.htm\\#subrepertoire"], + \["{subtype}", "26_glo_s.htm\\#subtype"], + \["{superclass}", "26_glo_s.htm\\#superclass"], + \["{supertype}", "26_glo_s.htm\\#supertype"], + \["{supplied-p parameter}", "26_glo_s.htm\\#supplied-p_parameter"], + \["{symbol}", "26_glo_s.htm\\#symbol"], + \["{symbol macro}", "26_glo_s.htm\\#symbol_macro"], + \["{synonym stream}", "26_glo_s.htm\\#synonym_stream"], + \["{synonym stream symbol}", "26_glo_s.htm\\#synonym_stream_symbol"], + \["{syntax type}", "26_glo_s.htm\\#syntax_type"], + \["{system class}", "26_glo_s.htm\\#system_class"], + \["{system code}", "26_glo_s.htm\\#system_code"], + \["{t}", "26_glo_t.htm\\#t"], + \["{tag}", "26_glo_t.htm\\#tag"], + \["{tail}", "26_glo_t.htm\\#tail"], + \["{target}", "26_glo_t.htm\\#target"], + \["{terminal I/O}", "26_glo_t.htm\\#terminal_iSLo"], + \["{terminating}", "26_glo_t.htm\\#terminating"], + \["{tertiary value}", "26_glo_t.htm\\#tertiary_value"], + \["{throw}", "26_glo_t.htm\\#throw"], + \["{tilde}", "26_glo_t.htm\\#tilde"], + \["{time}", "26_glo_t.htm\\#time"], + \["{time zone}", "26_glo_t.htm\\#time_zone"], + \["{token}", "26_glo_t.htm\\#token"], + \["{top level form}", "26_glo_t.htm\\#top_level_form"], + \["{trace output}", "26_glo_t.htm\\#trace_output"], + \["{tree}", "26_glo_t.htm\\#tree"], + \["{tree structure}", "26_glo_t.htm\\#tree_structure"], + \["{true}", "26_glo_t.htm\\#true"], + \["{truename}", "26_glo_t.htm\\#truename"], + \["{two-way stream}", "26_glo_t.htm\\#two-way_stream"], + \["{type}", "26_glo_t.htm\\#type"], + \["{type declaration}", "26_glo_t.htm\\#type_declaration"], + \["{type equivalent}", "26_glo_t.htm\\#type_equivalent"], + \["{type expand}", "26_glo_t.htm\\#type_expand"], + \["{type specifier}", "26_glo_t.htm\\#type_specifier"], + \["{unbound}", "26_glo_u.htm\\#unbound"], + \["{unbound variable}", "26_glo_u.htm\\#unbound_variable"], + \["{undefined function}", "26_glo_u.htm\\#undefined_function"], + \["{unintern}", "26_glo_u.htm\\#unintern"], + \["{uninterned}", "26_glo_u.htm\\#uninterned"], + \["{universal time}", "26_glo_u.htm\\#universal_time"], + \["{unqualified method}", "26_glo_u.htm\\#unqualified_method"], + \["{unregistered package}", "26_glo_u.htm\\#unregistered_package"], + \["{unsafe}", "26_glo_u.htm\\#unsafe"], + \["{unsafe call}", "26_glo_u.htm\\#unsafe_call"], + \["{upgrade}", "26_glo_u.htm\\#upgrade"], + \["{upgraded array element type}", "26_glo_u.htm\\#upgraded_array_element_type"], + \["{upgraded complex part type}", "26_glo_u.htm\\#upgraded_complex_part_type"], + \["{uppercase}", "26_glo_u.htm\\#uppercase"], + \["{use}", "26_glo_u.htm\\#use"], + \["{use list}", "26_glo_u.htm\\#use_list"], + \["{user}", "26_glo_u.htm\\#user"], + \["{valid array dimension}", "26_glo_v.htm\\#valid_array_dimension"], + \["{valid array index}", "26_glo_v.htm\\#valid_array_index"], + \["{valid array row-major index}", "26_glo_v.htm\\#valid_array_row-major_index"], + \["{valid fill pointer}", "26_glo_v.htm\\#valid_fill_pointer"], + \["{valid logical pathname host}", "26_glo_v.htm\\#valid_logical_pathname_host"], + \["{valid pathname device}", "26_glo_v.htm\\#valid_pathname_device"], + \["{valid pathname directory}", "26_glo_v.htm\\#valid_pathname_directory"], + \["{valid pathname host}", "26_glo_v.htm\\#valid_pathname_host"], + \["{valid pathname name}", "26_glo_v.htm\\#valid_pathname_name"], + \["{valid pathname type}", "26_glo_v.htm\\#valid_pathname_type"], + \["{valid pathname version}", "26_glo_v.htm\\#valid_pathname_version"], + \["{valid physical pathname host}", "26_glo_v.htm\\#valid_physical_pathname_host"], + \["{valid sequence index}", "26_glo_v.htm\\#valid_sequence_index"], + \["{value}", "26_glo_v.htm\\#value"], + \["{value cell}", "26_glo_v.htm\\#value_cell"], + \["{variable}", "26_glo_v.htm\\#variable"], + \["{vector}", "26_glo_v.htm\\#vector"], + \["{vertical-bar}", "26_glo_v.htm\\#vertical-bar"], + \["{whitespace}", "26_glo_w.htm\\#whitespace"], + \["{wild}", "26_glo_w.htm\\#wild"], + \["{write}", "26_glo_w.htm\\#write"], + \["{writer}", "26_glo_w.htm\\#writer"], + \["{yield}", "26_glo_y.htm\\#yield"]] +endif + diff -r e0f13b88e80e -r c4d3b4507707 vim/bundle/slimv/ftplugin/slimv-cljapi.vim --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vim/bundle/slimv/ftplugin/slimv-cljapi.vim Fri Nov 12 18:30:35 2010 -0500 @@ -0,0 +1,554 @@ +" slimv-cljapi.vim: +" Clojure API lookup support for Slimv +" Version: 0.7.0 +" Last Change: 23 Sep 2010 +" Maintainer: Tamas Kovacs +" License: This file is placed in the public domain. +" No warranty, express or implied. +" *** *** Use At-Your-Own-Risk! *** *** +" +" ===================================================================== +" +" Load Once: +if &cp || exists( 'g:slimv_cljapi_loaded' ) + finish +endif + +let g:slimv_cljapi_loaded = 1 + +" Root of the Clojure API +if !exists( 'g:slimv_cljapi_root' ) + let g:slimv_cljapi_root = 'http://clojure.github.com/clojure/' +endif + +if !exists( 'g:slimv_cljapi_db' ) + let g:slimv_cljapi_db = [ + \["*", "clojure.core-api.html\\#clojure.core/*"], + \["*1", "clojure.core-api.html\\#clojure.core/*1"], + \["*2", "clojure.core-api.html\\#clojure.core/*2"], + \["*3", "clojure.core-api.html\\#clojure.core/*3"], + \["*agent*", "clojure.core-api.html\\#clojure.core/*agent*"], + \["*clojure-version*", "clojure.core-api.html\\#clojure.core/*clojure-version*"], + \["*command-line-args*", "clojure.core-api.html\\#clojure.core/*command-line-args*"], + \["*compile-files*", "clojure.core-api.html\\#clojure.core/*compile-files*"], + \["*compile-path*", "clojure.core-api.html\\#clojure.core/*compile-path*"], + \["*e", "clojure.core-api.html\\#clojure.core/*e"], + \["*err*", "clojure.core-api.html\\#clojure.core/*err*"], + \["*file*", "clojure.core-api.html\\#clojure.core/*file*"], + \["*flush-on-newline*", "clojure.core-api.html\\#clojure.core/*flush-on-newline*"], + \["*in*", "clojure.core-api.html\\#clojure.core/*in*"], + \["*ns*", "clojure.core-api.html\\#clojure.core/*ns*"], + \["*out*", "clojure.core-api.html\\#clojure.core/*out*"], + \["*print-dup*", "clojure.core-api.html\\#clojure.core/*print-dup*"], + \["*print-length*", "clojure.core-api.html\\#clojure.core/*print-length*"], + \["*print-level*", "clojure.core-api.html\\#clojure.core/*print-level*"], + \["*print-meta*", "clojure.core-api.html\\#clojure.core/*print-meta*"], + \["*print-readably*", "clojure.core-api.html\\#clojure.core/*print-readably*"], + \["*read-eval*", "clojure.core-api.html\\#clojure.core/*read-eval*"], + \["*warn-on-reflection*", "clojure.core-api.html\\#clojure.core/*warn-on-reflection*"], + \["+", "clojure.core-api.html\\#clojure.core/+"], + \["-", "clojure.core-api.html\\#clojure.core/-"], + \["->", "clojure.core-api.html\\#clojure.core/->"], + \["->>", "clojure.core-api.html\\#clojure.core/->>"], + \["..", "clojure.core-api.html\\#clojure.core/.."], + \["/", "clojure.core-api.html\\#clojure.core//"], + \["<", "clojure.core-api.html\\#clojure.core/<"], + \["<=", "clojure.core-api.html\\#clojure.core/<="], + \["=", "clojure.core-api.html\\#clojure.core/="], + \["==", "clojure.core-api.html\\#clojure.core/=="], + \[">", "clojure.core-api.html\\#clojure.core/>"], + \[">=", "clojure.core-api.html\\#clojure.core/>="], + \["accessor", "clojure.core-api.html\\#clojure.core/accessor"], + \["aclone", "clojure.core-api.html\\#clojure.core/aclone"], + \["add-classpath", "clojure.core-api.html\\#clojure.core/add-classpath"], + \["add-watch", "clojure.core-api.html\\#clojure.core/add-watch"], + \["agent", "clojure.core-api.html\\#clojure.core/agent"], + \["agent-errors", "clojure.core-api.html\\#clojure.core/agent-errors"], + \["aget", "clojure.core-api.html\\#clojure.core/aget"], + \["alength", "clojure.core-api.html\\#clojure.core/alength"], + \["alias", "clojure.core-api.html\\#clojure.core/alias"], + \["all-ns", "clojure.core-api.html\\#clojure.core/all-ns"], + \["alter", "clojure.core-api.html\\#clojure.core/alter"], + \["alter-meta!", "clojure.core-api.html\\#clojure.core/alter-meta!"], + \["alter-var-root", "clojure.core-api.html\\#clojure.core/alter-var-root"], + \["amap", "clojure.core-api.html\\#clojure.core/amap"], + \["ancestors", "clojure.core-api.html\\#clojure.core/ancestors"], + \["and", "clojure.core-api.html\\#clojure.core/and"], + \["apply", "clojure.core-api.html\\#clojure.core/apply"], + \["areduce", "clojure.core-api.html\\#clojure.core/areduce"], + \["array-map", "clojure.core-api.html\\#clojure.core/array-map"], + \["aset", "clojure.core-api.html\\#clojure.core/aset"], + \["aset-boolean", "clojure.core-api.html\\#clojure.core/aset-boolean"], + \["aset-byte", "clojure.core-api.html\\#clojure.core/aset-byte"], + \["aset-char", "clojure.core-api.html\\#clojure.core/aset-char"], + \["aset-double", "clojure.core-api.html\\#clojure.core/aset-double"], + \["aset-float", "clojure.core-api.html\\#clojure.core/aset-float"], + \["aset-int", "clojure.core-api.html\\#clojure.core/aset-int"], + \["aset-long", "clojure.core-api.html\\#clojure.core/aset-long"], + \["aset-short", "clojure.core-api.html\\#clojure.core/aset-short"], + \["assert", "clojure.core-api.html\\#clojure.core/assert"], + \["assoc", "clojure.core-api.html\\#clojure.core/assoc"], + \["assoc!", "clojure.core-api.html\\#clojure.core/assoc!"], + \["assoc-in", "clojure.core-api.html\\#clojure.core/assoc-in"], + \["associative?", "clojure.core-api.html\\#clojure.core/associative?"], + \["atom", "clojure.core-api.html\\#clojure.core/atom"], + \["await", "clojure.core-api.html\\#clojure.core/await"], + \["await-for", "clojure.core-api.html\\#clojure.core/await-for"], + \["bases", "clojure.core-api.html\\#clojure.core/bases"], + \["bean", "clojure.core-api.html\\#clojure.core/bean"], + \["bigdec", "clojure.core-api.html\\#clojure.core/bigdec"], + \["bigint", "clojure.core-api.html\\#clojure.core/bigint"], + \["binding", "clojure.core-api.html\\#clojure.core/binding"], + \["bit-and", "clojure.core-api.html\\#clojure.core/bit-and"], + \["bit-and-not", "clojure.core-api.html\\#clojure.core/bit-and-not"], + \["bit-clear", "clojure.core-api.html\\#clojure.core/bit-clear"], + \["bit-flip", "clojure.core-api.html\\#clojure.core/bit-flip"], + \["bit-not", "clojure.core-api.html\\#clojure.core/bit-not"], + \["bit-or", "clojure.core-api.html\\#clojure.core/bit-or"], + \["bit-set", "clojure.core-api.html\\#clojure.core/bit-set"], + \["bit-shift-left", "clojure.core-api.html\\#clojure.core/bit-shift-left"], + \["bit-shift-right", "clojure.core-api.html\\#clojure.core/bit-shift-right"], + \["bit-test", "clojure.core-api.html\\#clojure.core/bit-test"], + \["bit-xor", "clojure.core-api.html\\#clojure.core/bit-xor"], + \["boolean", "clojure.core-api.html\\#clojure.core/boolean"], + \["boolean-array", "clojure.core-api.html\\#clojure.core/boolean-array"], + \["booleans", "clojure.core-api.html\\#clojure.core/booleans"], + \["bound-fn", "clojure.core-api.html\\#clojure.core/bound-fn"], + \["bound-fn*", "clojure.core-api.html\\#clojure.core/bound-fn*"], + \["butlast", "clojure.core-api.html\\#clojure.core/butlast"], + \["byte", "clojure.core-api.html\\#clojure.core/byte"], + \["byte-array", "clojure.core-api.html\\#clojure.core/byte-array"], + \["bytes", "clojure.core-api.html\\#clojure.core/bytes"], + \["cast", "clojure.core-api.html\\#clojure.core/cast"], + \["char", "clojure.core-api.html\\#clojure.core/char"], + \["char-array", "clojure.core-api.html\\#clojure.core/char-array"], + \["char-escape-string", "clojure.core-api.html\\#clojure.core/char-escape-string"], + \["char-name-string", "clojure.core-api.html\\#clojure.core/char-name-string"], + \["char?", "clojure.core-api.html\\#clojure.core/char?"], + \["chars", "clojure.core-api.html\\#clojure.core/chars"], + \["class", "clojure.core-api.html\\#clojure.core/class"], + \["class?", "clojure.core-api.html\\#clojure.core/class?"], + \["clear-agent-errors", "clojure.core-api.html\\#clojure.core/clear-agent-errors"], + \["clojure-version", "clojure.core-api.html\\#clojure.core/clojure-version"], + \["coll?", "clojure.core-api.html\\#clojure.core/coll?"], + \["comment", "clojure.core-api.html\\#clojure.core/comment"], + \["commute", "clojure.core-api.html\\#clojure.core/commute"], + \["comp", "clojure.core-api.html\\#clojure.core/comp"], + \["comparator", "clojure.core-api.html\\#clojure.core/comparator"], + \["compare", "clojure.core-api.html\\#clojure.core/compare"], + \["compare-and-set!", "clojure.core-api.html\\#clojure.core/compare-and-set!"], + \["compile", "clojure.core-api.html\\#clojure.core/compile"], + \["complement", "clojure.core-api.html\\#clojure.core/complement"], + \["concat", "clojure.core-api.html\\#clojure.core/concat"], + \["cond", "clojure.core-api.html\\#clojure.core/cond"], + \["condp", "clojure.core-api.html\\#clojure.core/condp"], + \["conj", "clojure.core-api.html\\#clojure.core/conj"], + \["conj!", "clojure.core-api.html\\#clojure.core/conj!"], + \["cons", "clojure.core-api.html\\#clojure.core/cons"], + \["constantly", "clojure.core-api.html\\#clojure.core/constantly"], + \["construct-proxy", "clojure.core-api.html\\#clojure.core/construct-proxy"], + \["contains?", "clojure.core-api.html\\#clojure.core/contains?"], + \["count", "clojure.core-api.html\\#clojure.core/count"], + \["counted?", "clojure.core-api.html\\#clojure.core/counted?"], + \["create-ns", "clojure.core-api.html\\#clojure.core/create-ns"], + \["create-struct", "clojure.core-api.html\\#clojure.core/create-struct"], + \["cycle", "clojure.core-api.html\\#clojure.core/cycle"], + \["dec", "clojure.core-api.html\\#clojure.core/dec"], + \["decimal?", "clojure.core-api.html\\#clojure.core/decimal?"], + \["declare", "clojure.core-api.html\\#clojure.core/declare"], + \["definline", "clojure.core-api.html\\#clojure.core/definline"], + \["defmacro", "clojure.core-api.html\\#clojure.core/defmacro"], + \["defmethod", "clojure.core-api.html\\#clojure.core/defmethod"], + \["defmulti", "clojure.core-api.html\\#clojure.core/defmulti"], + \["defn", "clojure.core-api.html\\#clojure.core/defn"], + \["defn-", "clojure.core-api.html\\#clojure.core/defn-"], + \["defonce", "clojure.core-api.html\\#clojure.core/defonce"], + \["defstruct", "clojure.core-api.html\\#clojure.core/defstruct"], + \["delay", "clojure.core-api.html\\#clojure.core/delay"], + \["delay?", "clojure.core-api.html\\#clojure.core/delay?"], + \["deliver", "clojure.core-api.html\\#clojure.core/deliver"], + \["deref", "clojure.core-api.html\\#clojure.core/deref"], + \["derive", "clojure.core-api.html\\#clojure.core/derive"], + \["descendants", "clojure.core-api.html\\#clojure.core/descendants"], + \["disj", "clojure.core-api.html\\#clojure.core/disj"], + \["disj!", "clojure.core-api.html\\#clojure.core/disj!"], + \["dissoc", "clojure.core-api.html\\#clojure.core/dissoc"], + \["dissoc!", "clojure.core-api.html\\#clojure.core/dissoc!"], + \["distinct", "clojure.core-api.html\\#clojure.core/distinct"], + \["distinct?", "clojure.core-api.html\\#clojure.core/distinct?"], + \["doall", "clojure.core-api.html\\#clojure.core/doall"], + \["doc", "clojure.core-api.html\\#clojure.core/doc"], + \["dorun", "clojure.core-api.html\\#clojure.core/dorun"], + \["doseq", "clojure.core-api.html\\#clojure.core/doseq"], + \["dosync", "clojure.core-api.html\\#clojure.core/dosync"], + \["dotimes", "clojure.core-api.html\\#clojure.core/dotimes"], + \["doto", "clojure.core-api.html\\#clojure.core/doto"], + \["double", "clojure.core-api.html\\#clojure.core/double"], + \["double-array", "clojure.core-api.html\\#clojure.core/double-array"], + \["doubles", "clojure.core-api.html\\#clojure.core/doubles"], + \["drop", "clojure.core-api.html\\#clojure.core/drop"], + \["drop-last", "clojure.core-api.html\\#clojure.core/drop-last"], + \["drop-while", "clojure.core-api.html\\#clojure.core/drop-while"], + \["empty", "clojure.core-api.html\\#clojure.core/empty"], + \["empty?", "clojure.core-api.html\\#clojure.core/empty?"], + \["ensure", "clojure.core-api.html\\#clojure.core/ensure"], + \["enumeration-seq", "clojure.core-api.html\\#clojure.core/enumeration-seq"], + \["eval", "clojure.core-api.html\\#clojure.core/eval"], + \["even?", "clojure.core-api.html\\#clojure.core/even?"], + \["every?", "clojure.core-api.html\\#clojure.core/every?"], + \["false?", "clojure.core-api.html\\#clojure.core/false?"], + \["ffirst", "clojure.core-api.html\\#clojure.core/ffirst"], + \["file-seq", "clojure.core-api.html\\#clojure.core/file-seq"], + \["filter", "clojure.core-api.html\\#clojure.core/filter"], + \["find", "clojure.core-api.html\\#clojure.core/find"], + \["find-doc", "clojure.core-api.html\\#clojure.core/find-doc"], + \["find-ns", "clojure.core-api.html\\#clojure.core/find-ns"], + \["find-var", "clojure.core-api.html\\#clojure.core/find-var"], + \["first", "clojure.core-api.html\\#clojure.core/first"], + \["float", "clojure.core-api.html\\#clojure.core/float"], + \["float-array", "clojure.core-api.html\\#clojure.core/float-array"], + \["float?", "clojure.core-api.html\\#clojure.core/float?"], + \["floats", "clojure.core-api.html\\#clojure.core/floats"], + \["flush", "clojure.core-api.html\\#clojure.core/flush"], + \["fn", "clojure.core-api.html\\#clojure.core/fn"], + \["fn?", "clojure.core-api.html\\#clojure.core/fn?"], + \["fnext", "clojure.core-api.html\\#clojure.core/fnext"], + \["for", "clojure.core-api.html\\#clojure.core/for"], + \["force", "clojure.core-api.html\\#clojure.core/force"], + \["format", "clojure.core-api.html\\#clojure.core/format"], + \["future", "clojure.core-api.html\\#clojure.core/future"], + \["future-call", "clojure.core-api.html\\#clojure.core/future-call"], + \["future-cancel", "clojure.core-api.html\\#clojure.core/future-cancel"], + \["future-cancelled?", "clojure.core-api.html\\#clojure.core/future-cancelled?"], + \["future-done?", "clojure.core-api.html\\#clojure.core/future-done?"], + \["future?", "clojure.core-api.html\\#clojure.core/future?"], + \["gen-class", "clojure.core-api.html\\#clojure.core/gen-class"], + \["gen-interface", "clojure.core-api.html\\#clojure.core/gen-interface"], + \["gensym", "clojure.core-api.html\\#clojure.core/gensym"], + \["get", "clojure.core-api.html\\#clojure.core/get"], + \["get-in", "clojure.core-api.html\\#clojure.core/get-in"], + \["get-method", "clojure.core-api.html\\#clojure.core/get-method"], + \["get-proxy-class", "clojure.core-api.html\\#clojure.core/get-proxy-class"], + \["get-thread-bindings", "clojure.core-api.html\\#clojure.core/get-thread-bindings"], + \["get-validator", "clojure.core-api.html\\#clojure.core/get-validator"], + \["hash", "clojure.core-api.html\\#clojure.core/hash"], + \["hash-map", "clojure.core-api.html\\#clojure.core/hash-map"], + \["hash-set", "clojure.core-api.html\\#clojure.core/hash-set"], + \["identical?", "clojure.core-api.html\\#clojure.core/identical?"], + \["identity", "clojure.core-api.html\\#clojure.core/identity"], + \["if-let", "clojure.core-api.html\\#clojure.core/if-let"], + \["if-not", "clojure.core-api.html\\#clojure.core/if-not"], + \["ifn?", "clojure.core-api.html\\#clojure.core/ifn?"], + \["import", "clojure.core-api.html\\#clojure.core/import"], + \["in-ns", "clojure.core-api.html\\#clojure.core/in-ns"], + \["inc", "clojure.core-api.html\\#clojure.core/inc"], + \["init-proxy", "clojure.core-api.html\\#clojure.core/init-proxy"], + \["instance?", "clojure.core-api.html\\#clojure.core/instance?"], + \["int", "clojure.core-api.html\\#clojure.core/int"], + \["int-array", "clojure.core-api.html\\#clojure.core/int-array"], + \["integer?", "clojure.core-api.html\\#clojure.core/integer?"], + \["interleave", "clojure.core-api.html\\#clojure.core/interleave"], + \["intern", "clojure.core-api.html\\#clojure.core/intern"], + \["interpose", "clojure.core-api.html\\#clojure.core/interpose"], + \["into", "clojure.core-api.html\\#clojure.core/into"], + \["into-array", "clojure.core-api.html\\#clojure.core/into-array"], + \["ints", "clojure.core-api.html\\#clojure.core/ints"], + \["io!", "clojure.core-api.html\\#clojure.core/io!"], + \["isa?", "clojure.core-api.html\\#clojure.core/isa?"], + \["iterate", "clojure.core-api.html\\#clojure.core/iterate"], + \["iterator-seq", "clojure.core-api.html\\#clojure.core/iterator-seq"], + \["juxt", "clojure.core-api.html\\#clojure.core/juxt"], + \["key", "clojure.core-api.html\\#clojure.core/key"], + \["keys", "clojure.core-api.html\\#clojure.core/keys"], + \["keyword", "clojure.core-api.html\\#clojure.core/keyword"], + \["keyword?", "clojure.core-api.html\\#clojure.core/keyword?"], + \["last", "clojure.core-api.html\\#clojure.core/last"], + \["lazy-cat", "clojure.core-api.html\\#clojure.core/lazy-cat"], + \["lazy-seq", "clojure.core-api.html\\#clojure.core/lazy-seq"], + \["let", "clojure.core-api.html\\#clojure.core/let"], + \["letfn", "clojure.core-api.html\\#clojure.core/letfn"], + \["line-seq", "clojure.core-api.html\\#clojure.core/line-seq"], + \["list", "clojure.core-api.html\\#clojure.core/list"], + \["list*", "clojure.core-api.html\\#clojure.core/list*"], + \["list?", "clojure.core-api.html\\#clojure.core/list?"], + \["load", "clojure.core-api.html\\#clojure.core/load"], + \["load-file", "clojure.core-api.html\\#clojure.core/load-file"], + \["load-reader", "clojure.core-api.html\\#clojure.core/load-reader"], + \["load-string", "clojure.core-api.html\\#clojure.core/load-string"], + \["loaded-libs", "clojure.core-api.html\\#clojure.core/loaded-libs"], + \["locking", "clojure.core-api.html\\#clojure.core/locking"], + \["long", "clojure.core-api.html\\#clojure.core/long"], + \["long-array", "clojure.core-api.html\\#clojure.core/long-array"], + \["longs", "clojure.core-api.html\\#clojure.core/longs"], + \["loop", "clojure.core-api.html\\#clojure.core/loop"], + \["macroexpand", "clojure.core-api.html\\#clojure.core/macroexpand"], + \["macroexpand-1", "clojure.core-api.html\\#clojure.core/macroexpand-1"], + \["make-array", "clojure.core-api.html\\#clojure.core/make-array"], + \["make-hierarchy", "clojure.core-api.html\\#clojure.core/make-hierarchy"], + \["map", "clojure.core-api.html\\#clojure.core/map"], + \["map?", "clojure.core-api.html\\#clojure.core/map?"], + \["mapcat", "clojure.core-api.html\\#clojure.core/mapcat"], + \["max", "clojure.core-api.html\\#clojure.core/max"], + \["max-key", "clojure.core-api.html\\#clojure.core/max-key"], + \["memfn", "clojure.core-api.html\\#clojure.core/memfn"], + \["memoize", "clojure.core-api.html\\#clojure.core/memoize"], + \["merge", "clojure.core-api.html\\#clojure.core/merge"], + \["merge-with", "clojure.core-api.html\\#clojure.core/merge-with"], + \["meta", "clojure.core-api.html\\#clojure.core/meta"], + \["methods", "clojure.core-api.html\\#clojure.core/methods"], + \["min", "clojure.core-api.html\\#clojure.core/min"], + \["min-key", "clojure.core-api.html\\#clojure.core/min-key"], + \["mod", "clojure.core-api.html\\#clojure.core/mod"], + \["name", "clojure.core-api.html\\#clojure.core/name"], + \["namespace", "clojure.core-api.html\\#clojure.core/namespace"], + \["namespace-munge", "clojure.core-api.html\\#clojure.core/namespace-munge"], + \["neg?", "clojure.core-api.html\\#clojure.core/neg?"], + \["newline", "clojure.core-api.html\\#clojure.core/newline"], + \["next", "clojure.core-api.html\\#clojure.core/next"], + \["nfirst", "clojure.core-api.html\\#clojure.core/nfirst"], + \["nil?", "clojure.core-api.html\\#clojure.core/nil?"], + \["nnext", "clojure.core-api.html\\#clojure.core/nnext"], + \["not", "clojure.core-api.html\\#clojure.core/not"], + \["not-any?", "clojure.core-api.html\\#clojure.core/not-any?"], + \["not-empty", "clojure.core-api.html\\#clojure.core/not-empty"], + \["not-every?", "clojure.core-api.html\\#clojure.core/not-every?"], + \["not=", "clojure.core-api.html\\#clojure.core/not="], + \["ns", "clojure.core-api.html\\#clojure.core/ns"], + \["ns-aliases", "clojure.core-api.html\\#clojure.core/ns-aliases"], + \["ns-imports", "clojure.core-api.html\\#clojure.core/ns-imports"], + \["ns-interns", "clojure.core-api.html\\#clojure.core/ns-interns"], + \["ns-map", "clojure.core-api.html\\#clojure.core/ns-map"], + \["ns-name", "clojure.core-api.html\\#clojure.core/ns-name"], + \["ns-publics", "clojure.core-api.html\\#clojure.core/ns-publics"], + \["ns-refers", "clojure.core-api.html\\#clojure.core/ns-refers"], + \["ns-resolve", "clojure.core-api.html\\#clojure.core/ns-resolve"], + \["ns-unalias", "clojure.core-api.html\\#clojure.core/ns-unalias"], + \["ns-unmap", "clojure.core-api.html\\#clojure.core/ns-unmap"], + \["nth", "clojure.core-api.html\\#clojure.core/nth"], + \["nthnext", "clojure.core-api.html\\#clojure.core/nthnext"], + \["num", "clojure.core-api.html\\#clojure.core/num"], + \["number?", "clojure.core-api.html\\#clojure.core/number?"], + \["odd?", "clojure.core-api.html\\#clojure.core/odd?"], + \["or", "clojure.core-api.html\\#clojure.core/or"], + \["parents", "clojure.core-api.html\\#clojure.core/parents"], + \["partial", "clojure.core-api.html\\#clojure.core/partial"], + \["partition", "clojure.core-api.html\\#clojure.core/partition"], + \["pcalls", "clojure.core-api.html\\#clojure.core/pcalls"], + \["peek", "clojure.core-api.html\\#clojure.core/peek"], + \["persistent!", "clojure.core-api.html\\#clojure.core/persistent!"], + \["pmap", "clojure.core-api.html\\#clojure.core/pmap"], + \["pop", "clojure.core-api.html\\#clojure.core/pop"], + \["pop!", "clojure.core-api.html\\#clojure.core/pop!"], + \["pop-thread-bindings", "clojure.core-api.html\\#clojure.core/pop-thread-bindings"], + \["pos?", "clojure.core-api.html\\#clojure.core/pos?"], + \["pr", "clojure.core-api.html\\#clojure.core/pr"], + \["pr-str", "clojure.core-api.html\\#clojure.core/pr-str"], + \["prefer-method", "clojure.core-api.html\\#clojure.core/prefer-method"], + \["prefers", "clojure.core-api.html\\#clojure.core/prefers"], + \["print", "clojure.core-api.html\\#clojure.core/print"], + \["print-namespace-doc", "clojure.core-api.html\\#clojure.core/print-namespace-doc"], + \["print-str", "clojure.core-api.html\\#clojure.core/print-str"], + \["printf", "clojure.core-api.html\\#clojure.core/printf"], + \["println", "clojure.core-api.html\\#clojure.core/println"], + \["println-str", "clojure.core-api.html\\#clojure.core/println-str"], + \["prn", "clojure.core-api.html\\#clojure.core/prn"], + \["prn-str", "clojure.core-api.html\\#clojure.core/prn-str"], + \["promise", "clojure.core-api.html\\#clojure.core/promise"], + \["proxy", "clojure.core-api.html\\#clojure.core/proxy"], + \["proxy-mappings", "clojure.core-api.html\\#clojure.core/proxy-mappings"], + \["proxy-super", "clojure.core-api.html\\#clojure.core/proxy-super"], + \["push-thread-bindings", "clojure.core-api.html\\#clojure.core/push-thread-bindings"], + \["pvalues", "clojure.core-api.html\\#clojure.core/pvalues"], + \["quot", "clojure.core-api.html\\#clojure.core/quot"], + \["rand", "clojure.core-api.html\\#clojure.core/rand"], + \["rand-int", "clojure.core-api.html\\#clojure.core/rand-int"], + \["range", "clojure.core-api.html\\#clojure.core/range"], + \["ratio?", "clojure.core-api.html\\#clojure.core/ratio?"], + \["rationalize", "clojure.core-api.html\\#clojure.core/rationalize"], + \["re-find", "clojure.core-api.html\\#clojure.core/re-find"], + \["re-groups", "clojure.core-api.html\\#clojure.core/re-groups"], + \["re-matcher", "clojure.core-api.html\\#clojure.core/re-matcher"], + \["re-matches", "clojure.core-api.html\\#clojure.core/re-matches"], + \["re-pattern", "clojure.core-api.html\\#clojure.core/re-pattern"], + \["re-seq", "clojure.core-api.html\\#clojure.core/re-seq"], + \["read", "clojure.core-api.html\\#clojure.core/read"], + \["read-line", "clojure.core-api.html\\#clojure.core/read-line"], + \["read-string", "clojure.core-api.html\\#clojure.core/read-string"], + \["reduce", "clojure.core-api.html\\#clojure.core/reduce"], + \["ref", "clojure.core-api.html\\#clojure.core/ref"], + \["ref-history-count", "clojure.core-api.html\\#clojure.core/ref-history-count"], + \["ref-max-history", "clojure.core-api.html\\#clojure.core/ref-max-history"], + \["ref-min-history", "clojure.core-api.html\\#clojure.core/ref-min-history"], + \["ref-set", "clojure.core-api.html\\#clojure.core/ref-set"], + \["refer", "clojure.core-api.html\\#clojure.core/refer"], + \["refer-clojure", "clojure.core-api.html\\#clojure.core/refer-clojure"], + \["release-pending-sends", "clojure.core-api.html\\#clojure.core/release-pending-sends"], + \["rem", "clojure.core-api.html\\#clojure.core/rem"], + \["remove", "clojure.core-api.html\\#clojure.core/remove"], + \["remove-method", "clojure.core-api.html\\#clojure.core/remove-method"], + \["remove-ns", "clojure.core-api.html\\#clojure.core/remove-ns"], + \["remove-watch", "clojure.core-api.html\\#clojure.core/remove-watch"], + \["repeat", "clojure.core-api.html\\#clojure.core/repeat"], + \["repeatedly", "clojure.core-api.html\\#clojure.core/repeatedly"], + \["replace", "clojure.core-api.html\\#clojure.core/replace"], + \["replicate", "clojure.core-api.html\\#clojure.core/replicate"], + \["require", "clojure.core-api.html\\#clojure.core/require"], + \["reset!", "clojure.core-api.html\\#clojure.core/reset!"], + \["reset-meta!", "clojure.core-api.html\\#clojure.core/reset-meta!"], + \["resolve", "clojure.core-api.html\\#clojure.core/resolve"], + \["rest", "clojure.core-api.html\\#clojure.core/rest"], + \["resultset-seq", "clojure.core-api.html\\#clojure.core/resultset-seq"], + \["reverse", "clojure.core-api.html\\#clojure.core/reverse"], + \["reversible?", "clojure.core-api.html\\#clojure.core/reversible?"], + \["rseq", "clojure.core-api.html\\#clojure.core/rseq"], + \["rsubseq", "clojure.core-api.html\\#clojure.core/rsubseq"], + \["second", "clojure.core-api.html\\#clojure.core/second"], + \["select-keys", "clojure.core-api.html\\#clojure.core/select-keys"], + \["send", "clojure.core-api.html\\#clojure.core/send"], + \["send-off", "clojure.core-api.html\\#clojure.core/send-off"], + \["seq", "clojure.core-api.html\\#clojure.core/seq"], + \["seq?", "clojure.core-api.html\\#clojure.core/seq?"], + \["seque", "clojure.core-api.html\\#clojure.core/seque"], + \["sequence", "clojure.core-api.html\\#clojure.core/sequence"], + \["sequential?", "clojure.core-api.html\\#clojure.core/sequential?"], + \["set", "clojure.core-api.html\\#clojure.core/set"], + \["set-validator!", "clojure.core-api.html\\#clojure.core/set-validator!"], + \["set?", "clojure.core-api.html\\#clojure.core/set?"], + \["short", "clojure.core-api.html\\#clojure.core/short"], + \["short-array", "clojure.core-api.html\\#clojure.core/short-array"], + \["shorts", "clojure.core-api.html\\#clojure.core/shorts"], + \["shutdown-agents", "clojure.core-api.html\\#clojure.core/shutdown-agents"], + \["slurp", "clojure.core-api.html\\#clojure.core/slurp"], + \["some", "clojure.core-api.html\\#clojure.core/some"], + \["sort", "clojure.core-api.html\\#clojure.core/sort"], + \["sort-by", "clojure.core-api.html\\#clojure.core/sort-by"], + \["sorted-map", "clojure.core-api.html\\#clojure.core/sorted-map"], + \["sorted-map-by", "clojure.core-api.html\\#clojure.core/sorted-map-by"], + \["sorted-set", "clojure.core-api.html\\#clojure.core/sorted-set"], + \["sorted-set-by", "clojure.core-api.html\\#clojure.core/sorted-set-by"], + \["sorted?", "clojure.core-api.html\\#clojure.core/sorted?"], + \["special-form-anchor", "clojure.core-api.html\\#clojure.core/special-form-anchor"], + \["special-symbol?", "clojure.core-api.html\\#clojure.core/special-symbol?"], + \["split-at", "clojure.core-api.html\\#clojure.core/split-at"], + \["split-with", "clojure.core-api.html\\#clojure.core/split-with"], + \["str", "clojure.core-api.html\\#clojure.core/str"], + \["stream?", "clojure.core-api.html\\#clojure.core/stream?"], + \["string?", "clojure.core-api.html\\#clojure.core/string?"], + \["struct", "clojure.core-api.html\\#clojure.core/struct"], + \["struct-map", "clojure.core-api.html\\#clojure.core/struct-map"], + \["subs", "clojure.core-api.html\\#clojure.core/subs"], + \["subseq", "clojure.core-api.html\\#clojure.core/subseq"], + \["subvec", "clojure.core-api.html\\#clojure.core/subvec"], + \["supers", "clojure.core-api.html\\#clojure.core/supers"], + \["swap!", "clojure.core-api.html\\#clojure.core/swap!"], + \["symbol", "clojure.core-api.html\\#clojure.core/symbol"], + \["symbol?", "clojure.core-api.html\\#clojure.core/symbol?"], + \["sync", "clojure.core-api.html\\#clojure.core/sync"], + \["syntax-symbol-anchor", "clojure.core-api.html\\#clojure.core/syntax-symbol-anchor"], + \["take", "clojure.core-api.html\\#clojure.core/take"], + \["take-last", "clojure.core-api.html\\#clojure.core/take-last"], + \["take-nth", "clojure.core-api.html\\#clojure.core/take-nth"], + \["take-while", "clojure.core-api.html\\#clojure.core/take-while"], + \["test", "clojure.core-api.html\\#clojure.core/test"], + \["the-ns", "clojure.core-api.html\\#clojure.core/the-ns"], + \["time", "clojure.core-api.html\\#clojure.core/time"], + \["to-array", "clojure.core-api.html\\#clojure.core/to-array"], + \["to-array-2d", "clojure.core-api.html\\#clojure.core/to-array-2d"], + \["trampoline", "clojure.core-api.html\\#clojure.core/trampoline"], + \["transient", "clojure.core-api.html\\#clojure.core/transient"], + \["tree-seq", "clojure.core-api.html\\#clojure.core/tree-seq"], + \["true?", "clojure.core-api.html\\#clojure.core/true?"], + \["type", "clojure.core-api.html\\#clojure.core/type"], + \["unchecked-add", "clojure.core-api.html\\#clojure.core/unchecked-add"], + \["unchecked-dec", "clojure.core-api.html\\#clojure.core/unchecked-dec"], + \["unchecked-divide", "clojure.core-api.html\\#clojure.core/unchecked-divide"], + \["unchecked-inc", "clojure.core-api.html\\#clojure.core/unchecked-inc"], + \["unchecked-multiply", "clojure.core-api.html\\#clojure.core/unchecked-multiply"], + \["unchecked-negate", "clojure.core-api.html\\#clojure.core/unchecked-negate"], + \["unchecked-remainder", "clojure.core-api.html\\#clojure.core/unchecked-remainder"], + \["unchecked-subtract", "clojure.core-api.html\\#clojure.core/unchecked-subtract"], + \["underive", "clojure.core-api.html\\#clojure.core/underive"], + \["update-in", "clojure.core-api.html\\#clojure.core/update-in"], + \["update-proxy", "clojure.core-api.html\\#clojure.core/update-proxy"], + \["use", "clojure.core-api.html\\#clojure.core/use"], + \["val", "clojure.core-api.html\\#clojure.core/val"], + \["vals", "clojure.core-api.html\\#clojure.core/vals"], + \["var-get", "clojure.core-api.html\\#clojure.core/var-get"], + \["var-set", "clojure.core-api.html\\#clojure.core/var-set"], + \["var?", "clojure.core-api.html\\#clojure.core/var?"], + \["vary-meta", "clojure.core-api.html\\#clojure.core/vary-meta"], + \["vec", "clojure.core-api.html\\#clojure.core/vec"], + \["vector", "clojure.core-api.html\\#clojure.core/vector"], + \["vector?", "clojure.core-api.html\\#clojure.core/vector?"], + \["when", "clojure.core-api.html\\#clojure.core/when"], + \["when-first", "clojure.core-api.html\\#clojure.core/when-first"], + \["when-let", "clojure.core-api.html\\#clojure.core/when-let"], + \["when-not", "clojure.core-api.html\\#clojure.core/when-not"], + \["while", "clojure.core-api.html\\#clojure.core/while"], + \["with-bindings", "clojure.core-api.html\\#clojure.core/with-bindings"], + \["with-bindings*", "clojure.core-api.html\\#clojure.core/with-bindings*"], + \["with-in-str", "clojure.core-api.html\\#clojure.core/with-in-str"], + \["with-local-vars", "clojure.core-api.html\\#clojure.core/with-local-vars"], + \["with-meta", "clojure.core-api.html\\#clojure.core/with-meta"], + \["with-open", "clojure.core-api.html\\#clojure.core/with-open"], + \["with-out-str", "clojure.core-api.html\\#clojure.core/with-out-str"], + \["with-precision", "clojure.core-api.html\\#clojure.core/with-precision"], + \["xml-seq", "clojure.core-api.html\\#clojure.core/xml-seq"], + \["zero?", "clojure.core-api.html\\#clojure.core/zero?"], + \["zipmap", "clojure.core-api.html\\#clojure.core/zipmap"], + \["load-script", "clojure.main-api.html\\#clojure.main/load-script"], + \["main", "clojure.main-api.html\\#clojure.main/main"], + \["repl", "clojure.main-api.html\\#clojure.main/repl"], + \["repl-caught", "clojure.main-api.html\\#clojure.main/repl-caught"], + \["repl-exception", "clojure.main-api.html\\#clojure.main/repl-exception"], + \["repl-prompt", "clojure.main-api.html\\#clojure.main/repl-prompt"], + \["repl-read", "clojure.main-api.html\\#clojure.main/repl-read"], + \["skip-if-eol", "clojure.main-api.html\\#clojure.main/skip-if-eol"], + \["skip-whitespace", "clojure.main-api.html\\#clojure.main/skip-whitespace"], + \["with-bindings", "clojure.main-api.html\\#clojure.main/with-bindings"], + \["apropos", "clojure.repl-api.html\\#clojure.repl/apropos"], + \["dir", "clojure.repl-api.html\\#clojure.repl/dir"], + \["dir-fn", "clojure.repl-api.html\\#clojure.repl/dir-fn"], + \["source", "clojure.repl-api.html\\#clojure.repl/source"], + \["source-fn", "clojure.repl-api.html\\#clojure.repl/source-fn"], + \["difference", "clojure.set-api.html\\#clojure.set/difference"], + \["index", "clojure.set-api.html\\#clojure.set/index"], + \["intersection", "clojure.set-api.html\\#clojure.set/intersection"], + \["join", "clojure.set-api.html\\#clojure.set/join"], + \["map-invert", "clojure.set-api.html\\#clojure.set/map-invert"], + \["project", "clojure.set-api.html\\#clojure.set/project"], + \["rename", "clojure.set-api.html\\#clojure.set/rename"], + \["rename-keys", "clojure.set-api.html\\#clojure.set/rename-keys"], + \["select", "clojure.set-api.html\\#clojure.set/select"], + \["union", "clojure.set-api.html\\#clojure.set/union"], + \["parse", "clojure.xml-api.html\\#clojure.xml/parse"], + \["append-child", "clojure.zip-api.html\\#clojure.zip/append-child"], + \["branch?", "clojure.zip-api.html\\#clojure.zip/branch?"], + \["children", "clojure.zip-api.html\\#clojure.zip/children"], + \["down", "clojure.zip-api.html\\#clojure.zip/down"], + \["edit", "clojure.zip-api.html\\#clojure.zip/edit"], + \["end?", "clojure.zip-api.html\\#clojure.zip/end?"], + \["insert-child", "clojure.zip-api.html\\#clojure.zip/insert-child"], + \["insert-left", "clojure.zip-api.html\\#clojure.zip/insert-left"], + \["insert-right", "clojure.zip-api.html\\#clojure.zip/insert-right"], + \["left", "clojure.zip-api.html\\#clojure.zip/left"], + \["leftmost", "clojure.zip-api.html\\#clojure.zip/leftmost"], + \["lefts", "clojure.zip-api.html\\#clojure.zip/lefts"], + \["make-node", "clojure.zip-api.html\\#clojure.zip/make-node"], + \["next", "clojure.zip-api.html\\#clojure.zip/next"], + \["node", "clojure.zip-api.html\\#clojure.zip/node"], + \["path", "clojure.zip-api.html\\#clojure.zip/path"], + \["prev", "clojure.zip-api.html\\#clojure.zip/prev"], + \["remove", "clojure.zip-api.html\\#clojure.zip/remove"], + \["replace", "clojure.zip-api.html\\#clojure.zip/replace"], + \["right", "clojure.zip-api.html\\#clojure.zip/right"], + \["rightmost", "clojure.zip-api.html\\#clojure.zip/rightmost"], + \["rights", "clojure.zip-api.html\\#clojure.zip/rights"], + \["root", "clojure.zip-api.html\\#clojure.zip/root"], + \["seq-zip", "clojure.zip-api.html\\#clojure.zip/seq-zip"], + \["up", "clojure.zip-api.html\\#clojure.zip/up"], + \["vector-zip", "clojure.zip-api.html\\#clojure.zip/vector-zip"], + \["xml-zip", "clojure.zip-api.html\\#clojure.zip/xml-zip"], + \["zipper", "clojure.zip-api.html\\#clojure.zip/zipper"]] +endif + diff -r e0f13b88e80e -r c4d3b4507707 vim/bundle/slimv/ftplugin/slimv-javadoc.vim --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vim/bundle/slimv/ftplugin/slimv-javadoc.vim Fri Nov 12 18:30:35 2010 -0500 @@ -0,0 +1,3820 @@ +" slimv-javadoc.vim: +" Clojure JavaDoc lookup support for Slimv +" Version: 0.5.0 +" Last Change: 14 Apr 2009 +" Maintainer: Tamas Kovacs +" License: This file is placed in the public domain. +" No warranty, express or implied. +" *** *** Use At-Your-Own-Risk! *** *** +" +" ===================================================================== +" +" Load Once: +if &cp || exists( 'g:slimv_javadoc_loaded' ) + finish +endif + +let g:slimv_javadoc_loaded = 1 + +" Root of the JavaDoc +if !exists( 'g:slimv_javadoc_root' ) + let g:slimv_javadoc_root = 'http://java.sun.com/javase/6/docs/api/' +endif + +if !exists( 'g:slimv_javadoc_db' ) + let g:slimv_javadoc_db = [ + \["AbstractAction", "javax/swing/AbstractAction.html"], + \["AbstractAnnotationValueVisitor6", "javax/lang/model/util/AbstractAnnotationValueVisitor6.html"], + \["AbstractBorder", "javax/swing/border/AbstractBorder.html"], + \["AbstractButton", "javax/swing/AbstractButton.html"], + \["AbstractCellEditor", "javax/swing/AbstractCellEditor.html"], + \["AbstractCollection", "java/util/AbstractCollection.html"], + \["AbstractColorChooserPanel", "javax/swing/colorchooser/AbstractColorChooserPanel.html"], + \["AbstractDocument", "javax/swing/text/AbstractDocument.html"], + \["AbstractDocument.AttributeContext", "javax/swing/text/AbstractDocument.AttributeContext.html"], + \["AbstractDocument.Content", "javax/swing/text/AbstractDocument.Content.html"], + \["AbstractDocument.ElementEdit", "javax/swing/text/AbstractDocument.ElementEdit.html"], + \["AbstractElementVisitor6", "javax/lang/model/util/AbstractElementVisitor6.html"], + \["AbstractExecutorService", "java/util/concurrent/AbstractExecutorService.html"], + \["AbstractInterruptibleChannel", "java/nio/channels/spi/AbstractInterruptibleChannel.html"], + \["AbstractLayoutCache", "javax/swing/tree/AbstractLayoutCache.html"], + \["AbstractLayoutCache.NodeDimensions", "javax/swing/tree/AbstractLayoutCache.NodeDimensions.html"], + \["AbstractList", "java/util/AbstractList.html"], + \["AbstractListModel", "javax/swing/AbstractListModel.html"], + \["AbstractMap", "java/util/AbstractMap.html"], + \["AbstractMap.SimpleEntry", "java/util/AbstractMap.SimpleEntry.html"], + \["AbstractMap.SimpleImmutableEntry", "java/util/AbstractMap.SimpleImmutableEntry.html"], + \["AbstractMarshallerImpl", "javax/xml/bind/helpers/AbstractMarshallerImpl.html"], + \["AbstractMethodError", "java/lang/AbstractMethodError.html"], + \["AbstractOwnableSynchronizer", "java/util/concurrent/locks/AbstractOwnableSynchronizer.html"], + \["AbstractPreferences", "java/util/prefs/AbstractPreferences.html"], + \["AbstractProcessor", "javax/annotation/processing/AbstractProcessor.html"], + \["AbstractQueue", "java/util/AbstractQueue.html"], + \["AbstractQueuedLongSynchronizer", "java/util/concurrent/locks/AbstractQueuedLongSynchronizer.html"], + \["AbstractQueuedSynchronizer", "java/util/concurrent/locks/AbstractQueuedSynchronizer.html"], + \["AbstractScriptEngine", "javax/script/AbstractScriptEngine.html"], + \["AbstractSelectableChannel", "java/nio/channels/spi/AbstractSelectableChannel.html"], + \["AbstractSelectionKey", "java/nio/channels/spi/AbstractSelectionKey.html"], + \["AbstractSelector", "java/nio/channels/spi/AbstractSelector.html"], + \["AbstractSequentialList", "java/util/AbstractSequentialList.html"], + \["AbstractSet", "java/util/AbstractSet.html"], + \["AbstractSpinnerModel", "javax/swing/AbstractSpinnerModel.html"], + \["AbstractTableModel", "javax/swing/table/AbstractTableModel.html"], + \["AbstractTypeVisitor6", "javax/lang/model/util/AbstractTypeVisitor6.html"], + \["AbstractUndoableEdit", "javax/swing/undo/AbstractUndoableEdit.html"], + \["AbstractUnmarshallerImpl", "javax/xml/bind/helpers/AbstractUnmarshallerImpl.html"], + \["AbstractWriter", "javax/swing/text/AbstractWriter.html"], + \["AccessControlContext", "java/security/AccessControlContext.html"], + \["AccessControlException", "java/security/AccessControlException.html"], + \["AccessController", "java/security/AccessController.html"], + \["AccessException", "java/rmi/AccessException.html"], + \["Accessible", "javax/accessibility/Accessible.html"], + \["AccessibleAction", "javax/accessibility/AccessibleAction.html"], + \["AccessibleAttributeSequence", "javax/accessibility/AccessibleAttributeSequence.html"], + \["AccessibleBundle", "javax/accessibility/AccessibleBundle.html"], + \["AccessibleComponent", "javax/accessibility/AccessibleComponent.html"], + \["AccessibleContext", "javax/accessibility/AccessibleContext.html"], + \["AccessibleEditableText", "javax/accessibility/AccessibleEditableText.html"], + \["AccessibleExtendedComponent", "javax/accessibility/AccessibleExtendedComponent.html"], + \["AccessibleExtendedTable", "javax/accessibility/AccessibleExtendedTable.html"], + \["AccessibleExtendedText", "javax/accessibility/AccessibleExtendedText.html"], + \["AccessibleHyperlink", "javax/accessibility/AccessibleHyperlink.html"], + \["AccessibleHypertext", "javax/accessibility/AccessibleHypertext.html"], + \["AccessibleIcon", "javax/accessibility/AccessibleIcon.html"], + \["AccessibleKeyBinding", "javax/accessibility/AccessibleKeyBinding.html"], + \["AccessibleObject", "java/lang/reflect/AccessibleObject.html"], + \["AccessibleRelation", "javax/accessibility/AccessibleRelation.html"], + \["AccessibleRelationSet", "javax/accessibility/AccessibleRelationSet.html"], + \["AccessibleResourceBundle", "javax/accessibility/AccessibleResourceBundle.html"], + \["AccessibleRole", "javax/accessibility/AccessibleRole.html"], + \["AccessibleSelection", "javax/accessibility/AccessibleSelection.html"], + \["AccessibleState", "javax/accessibility/AccessibleState.html"], + \["AccessibleStateSet", "javax/accessibility/AccessibleStateSet.html"], + \["AccessibleStreamable", "javax/accessibility/AccessibleStreamable.html"], + \["AccessibleTable", "javax/accessibility/AccessibleTable.html"], + \["AccessibleTableModelChange", "javax/accessibility/AccessibleTableModelChange.html"], + \["AccessibleText", "javax/accessibility/AccessibleText.html"], + \["AccessibleTextSequence", "javax/accessibility/AccessibleTextSequence.html"], + \["AccessibleValue", "javax/accessibility/AccessibleValue.html"], + \["AccountException", "javax/security/auth/login/AccountException.html"], + \["AccountExpiredException", "javax/security/auth/login/AccountExpiredException.html"], + \["AccountLockedException", "javax/security/auth/login/AccountLockedException.html"], + \["AccountNotFoundException", "javax/security/auth/login/AccountNotFoundException.html"], + \["Acl", "java/security/acl/Acl.html"], + \["AclEntry", "java/security/acl/AclEntry.html"], + \["AclNotFoundException", "java/security/acl/AclNotFoundException.html"], + \["Action", "javax/swing/Action.html"], + \["Action", "javax/xml/ws/Action.html"], + \["ActionEvent", "java/awt/event/ActionEvent.html"], + \["ActionListener", "java/awt/event/ActionListener.html"], + \["ActionMap", "javax/swing/ActionMap.html"], + \["ActionMapUIResource", "javax/swing/plaf/ActionMapUIResource.html"], + \["Activatable", "java/rmi/activation/Activatable.html"], + \["ActivateFailedException", "java/rmi/activation/ActivateFailedException.html"], + \["ActivationDataFlavor", "javax/activation/ActivationDataFlavor.html"], + \["ActivationDesc", "java/rmi/activation/ActivationDesc.html"], + \["ActivationException", "java/rmi/activation/ActivationException.html"], + \["ActivationGroup", "java/rmi/activation/ActivationGroup.html"], + \["ActivationGroup_Stub", "java/rmi/activation/ActivationGroup_Stub.html"], + \["ActivationGroupDesc", "java/rmi/activation/ActivationGroupDesc.html"], + \["ActivationGroupDesc.CommandEnvironment", "java/rmi/activation/ActivationGroupDesc.CommandEnvironment.html"], + \["ActivationGroupID", "java/rmi/activation/ActivationGroupID.html"], + \["ActivationID", "java/rmi/activation/ActivationID.html"], + \["ActivationInstantiator", "java/rmi/activation/ActivationInstantiator.html"], + \["ActivationMonitor", "java/rmi/activation/ActivationMonitor.html"], + \["ActivationSystem", "java/rmi/activation/ActivationSystem.html"], + \["Activator", "java/rmi/activation/Activator.html"], + \["ACTIVE", "org/omg/PortableInterceptor/ACTIVE.html"], + \["ActiveEvent", "java/awt/ActiveEvent.html"], + \["ACTIVITY_COMPLETED", "org/omg/CORBA/ACTIVITY_COMPLETED.html"], + \["ACTIVITY_REQUIRED", "org/omg/CORBA/ACTIVITY_REQUIRED.html"], + \["ActivityCompletedException", "javax/activity/ActivityCompletedException.html"], + \["ActivityRequiredException", "javax/activity/ActivityRequiredException.html"], + \["AdapterActivator", "org/omg/PortableServer/AdapterActivator.html"], + \["AdapterActivatorOperations", "org/omg/PortableServer/AdapterActivatorOperations.html"], + \["AdapterAlreadyExists", "org/omg/PortableServer/POAPackage/AdapterAlreadyExists.html"], + \["AdapterAlreadyExistsHelper", "org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHelper.html"], + \["AdapterInactive", "org/omg/PortableServer/POAManagerPackage/AdapterInactive.html"], + \["AdapterInactiveHelper", "org/omg/PortableServer/POAManagerPackage/AdapterInactiveHelper.html"], + \["AdapterManagerIdHelper", "org/omg/PortableInterceptor/AdapterManagerIdHelper.html"], + \["AdapterNameHelper", "org/omg/PortableInterceptor/AdapterNameHelper.html"], + \["AdapterNonExistent", "org/omg/PortableServer/POAPackage/AdapterNonExistent.html"], + \["AdapterNonExistentHelper", "org/omg/PortableServer/POAPackage/AdapterNonExistentHelper.html"], + \["AdapterStateHelper", "org/omg/PortableInterceptor/AdapterStateHelper.html"], + \["AddressHelper", "org/omg/CosNaming/NamingContextExtPackage/AddressHelper.html"], + \["Addressing", "javax/xml/ws/soap/Addressing.html"], + \["AddressingFeature", "javax/xml/ws/soap/AddressingFeature.html"], + \["Adjustable", "java/awt/Adjustable.html"], + \["AdjustmentEvent", "java/awt/event/AdjustmentEvent.html"], + \["AdjustmentListener", "java/awt/event/AdjustmentListener.html"], + \["Adler32", "java/util/zip/Adler32.html"], + \["AffineTransform", "java/awt/geom/AffineTransform.html"], + \["AffineTransformOp", "java/awt/image/AffineTransformOp.html"], + \["AlgorithmMethod", "javax/xml/crypto/AlgorithmMethod.html"], + \["AlgorithmParameterGenerator", "java/security/AlgorithmParameterGenerator.html"], + \["AlgorithmParameterGeneratorSpi", "java/security/AlgorithmParameterGeneratorSpi.html"], + \["AlgorithmParameters", "java/security/AlgorithmParameters.html"], + \["AlgorithmParameterSpec", "java/security/spec/AlgorithmParameterSpec.html"], + \["AlgorithmParametersSpi", "java/security/AlgorithmParametersSpi.html"], + \["AllPermission", "java/security/AllPermission.html"], + \["AlphaComposite", "java/awt/AlphaComposite.html"], + \["AlreadyBound", "org/omg/CosNaming/NamingContextPackage/AlreadyBound.html"], + \["AlreadyBoundException", "java/rmi/AlreadyBoundException.html"], + \["AlreadyBoundHelper", "org/omg/CosNaming/NamingContextPackage/AlreadyBoundHelper.html"], + \["AlreadyBoundHolder", "org/omg/CosNaming/NamingContextPackage/AlreadyBoundHolder.html"], + \["AlreadyConnectedException", "java/nio/channels/AlreadyConnectedException.html"], + \["AncestorEvent", "javax/swing/event/AncestorEvent.html"], + \["AncestorListener", "javax/swing/event/AncestorListener.html"], + \["AnnotatedElement", "java/lang/reflect/AnnotatedElement.html"], + \["Annotation", "java/lang/annotation/Annotation.html"], + \["Annotation", "java/text/Annotation.html"], + \["AnnotationFormatError", "java/lang/annotation/AnnotationFormatError.html"], + \["AnnotationMirror", "javax/lang/model/element/AnnotationMirror.html"], + \["AnnotationTypeMismatchException", "java/lang/annotation/AnnotationTypeMismatchException.html"], + \["AnnotationValue", "javax/lang/model/element/AnnotationValue.html"], + \["AnnotationValueVisitor", "javax/lang/model/element/AnnotationValueVisitor.html"], + \["Any", "org/omg/CORBA/Any.html"], + \["AnyHolder", "org/omg/CORBA/AnyHolder.html"], + \["AnySeqHelper", "org/omg/CORBA/AnySeqHelper.html"], + \["AnySeqHelper", "org/omg/DynamicAny/AnySeqHelper.html"], + \["AnySeqHolder", "org/omg/CORBA/AnySeqHolder.html"], + \["AppConfigurationEntry", "javax/security/auth/login/AppConfigurationEntry.html"], + \["AppConfigurationEntry.LoginModuleControlFlag", "javax/security/auth/login/AppConfigurationEntry.LoginModuleControlFlag.html"], + \["Appendable", "java/lang/Appendable.html"], + \["Applet", "java/applet/Applet.html"], + \["AppletContext", "java/applet/AppletContext.html"], + \["AppletInitializer", "java/beans/AppletInitializer.html"], + \["AppletStub", "java/applet/AppletStub.html"], + \["ApplicationException", "org/omg/CORBA/portable/ApplicationException.html"], + \["Arc2D", "java/awt/geom/Arc2D.html"], + \["Arc2D.Double", "java/awt/geom/Arc2D.Double.html"], + \["Arc2D.Float", "java/awt/geom/Arc2D.Float.html"], + \["Area", "java/awt/geom/Area.html"], + \["AreaAveragingScaleFilter", "java/awt/image/AreaAveragingScaleFilter.html"], + \["ARG_IN", "org/omg/CORBA/ARG_IN.html"], + \["ARG_INOUT", "org/omg/CORBA/ARG_INOUT.html"], + \["ARG_OUT", "org/omg/CORBA/ARG_OUT.html"], + \["ArithmeticException", "java/lang/ArithmeticException.html"], + \["Array", "java/lang/reflect/Array.html"], + \["Array", "java/sql/Array.html"], + \["ArrayBlockingQueue", "java/util/concurrent/ArrayBlockingQueue.html"], + \["ArrayDeque", "java/util/ArrayDeque.html"], + \["ArrayIndexOutOfBoundsException", "java/lang/ArrayIndexOutOfBoundsException.html"], + \["ArrayList", "java/util/ArrayList.html"], + \["Arrays", "java/util/Arrays.html"], + \["ArrayStoreException", "java/lang/ArrayStoreException.html"], + \["ArrayType", "javax/lang/model/type/ArrayType.html"], + \["ArrayType", "javax/management/openmbean/ArrayType.html"], + \["AssertionError", "java/lang/AssertionError.html"], + \["AsyncBoxView", "javax/swing/text/AsyncBoxView.html"], + \["AsyncHandler", "javax/xml/ws/AsyncHandler.html"], + \["AsynchronousCloseException", "java/nio/channels/AsynchronousCloseException.html"], + \["AtomicBoolean", "java/util/concurrent/atomic/AtomicBoolean.html"], + \["AtomicInteger", "java/util/concurrent/atomic/AtomicInteger.html"], + \["AtomicIntegerArray", "java/util/concurrent/atomic/AtomicIntegerArray.html"], + \["AtomicIntegerFieldUpdater", "java/util/concurrent/atomic/AtomicIntegerFieldUpdater.html"], + \["AtomicLong", "java/util/concurrent/atomic/AtomicLong.html"], + \["AtomicLongArray", "java/util/concurrent/atomic/AtomicLongArray.html"], + \["AtomicLongFieldUpdater", "java/util/concurrent/atomic/AtomicLongFieldUpdater.html"], + \["AtomicMarkableReference", "java/util/concurrent/atomic/AtomicMarkableReference.html"], + \["AtomicReference", "java/util/concurrent/atomic/AtomicReference.html"], + \["AtomicReferenceArray", "java/util/concurrent/atomic/AtomicReferenceArray.html"], + \["AtomicReferenceFieldUpdater", "java/util/concurrent/atomic/AtomicReferenceFieldUpdater.html"], + \["AtomicStampedReference", "java/util/concurrent/atomic/AtomicStampedReference.html"], + \["AttachmentMarshaller", "javax/xml/bind/attachment/AttachmentMarshaller.html"], + \["AttachmentPart", "javax/xml/soap/AttachmentPart.html"], + \["AttachmentUnmarshaller", "javax/xml/bind/attachment/AttachmentUnmarshaller.html"], + \["Attr", "org/w3c/dom/Attr.html"], + \["Attribute", "javax/management/Attribute.html"], + \["Attribute", "javax/naming/directory/Attribute.html"], + \["Attribute", "javax/print/attribute/Attribute.html"], + \["Attribute", "javax/xml/stream/events/Attribute.html"], + \["AttributeChangeNotification", "javax/management/AttributeChangeNotification.html"], + \["AttributeChangeNotificationFilter", "javax/management/AttributeChangeNotificationFilter.html"], + \["AttributedCharacterIterator", "java/text/AttributedCharacterIterator.html"], + \["AttributedCharacterIterator.Attribute", "java/text/AttributedCharacterIterator.Attribute.html"], + \["AttributedString", "java/text/AttributedString.html"], + \["AttributeException", "javax/print/AttributeException.html"], + \["AttributeInUseException", "javax/naming/directory/AttributeInUseException.html"], + \["AttributeList", "javax/management/AttributeList.html"], + \["AttributeList", "javax/swing/text/html/parser/AttributeList.html"], + \["AttributeList", "org/xml/sax/AttributeList.html"], + \["AttributeListImpl", "org/xml/sax/helpers/AttributeListImpl.html"], + \["AttributeModificationException", "javax/naming/directory/AttributeModificationException.html"], + \["AttributeNotFoundException", "javax/management/AttributeNotFoundException.html"], + \["Attributes", "java/util/jar/Attributes.html"], + \["Attributes", "javax/naming/directory/Attributes.html"], + \["Attributes", "org/xml/sax/Attributes.html"], + \["Attributes.Name", "java/util/jar/Attributes.Name.html"], + \["Attributes2", "org/xml/sax/ext/Attributes2.html"], + \["Attributes2Impl", "org/xml/sax/ext/Attributes2Impl.html"], + \["AttributeSet", "javax/print/attribute/AttributeSet.html"], + \["AttributeSet", "javax/swing/text/AttributeSet.html"], + \["AttributeSet.CharacterAttribute", "javax/swing/text/AttributeSet.CharacterAttribute.html"], + \["AttributeSet.ColorAttribute", "javax/swing/text/AttributeSet.ColorAttribute.html"], + \["AttributeSet.FontAttribute", "javax/swing/text/AttributeSet.FontAttribute.html"], + \["AttributeSet.ParagraphAttribute", "javax/swing/text/AttributeSet.ParagraphAttribute.html"], + \["AttributeSetUtilities", "javax/print/attribute/AttributeSetUtilities.html"], + \["AttributesImpl", "org/xml/sax/helpers/AttributesImpl.html"], + \["AttributeValueExp", "javax/management/AttributeValueExp.html"], + \["AudioClip", "java/applet/AudioClip.html"], + \["AudioFileFormat", "javax/sound/sampled/AudioFileFormat.html"], + \["AudioFileFormat.Type", "javax/sound/sampled/AudioFileFormat.Type.html"], + \["AudioFileReader", "javax/sound/sampled/spi/AudioFileReader.html"], + \["AudioFileWriter", "javax/sound/sampled/spi/AudioFileWriter.html"], + \["AudioFormat", "javax/sound/sampled/AudioFormat.html"], + \["AudioFormat.Encoding", "javax/sound/sampled/AudioFormat.Encoding.html"], + \["AudioInputStream", "javax/sound/sampled/AudioInputStream.html"], + \["AudioPermission", "javax/sound/sampled/AudioPermission.html"], + \["AudioSystem", "javax/sound/sampled/AudioSystem.html"], + \["AuthenticationException", "javax/naming/AuthenticationException.html"], + \["AuthenticationException", "javax/security/sasl/AuthenticationException.html"], + \["AuthenticationNotSupportedException", "javax/naming/AuthenticationNotSupportedException.html"], + \["Authenticator", "java/net/Authenticator.html"], + \["Authenticator.RequestorType", "java/net/Authenticator.RequestorType.html"], + \["AuthorizeCallback", "javax/security/sasl/AuthorizeCallback.html"], + \["AuthPermission", "javax/security/auth/AuthPermission.html"], + \["AuthProvider", "java/security/AuthProvider.html"], + \["Autoscroll", "java/awt/dnd/Autoscroll.html"], + \["AWTError", "java/awt/AWTError.html"], + \["AWTEvent", "java/awt/AWTEvent.html"], + \["AWTEventListener", "java/awt/event/AWTEventListener.html"], + \["AWTEventListenerProxy", "java/awt/event/AWTEventListenerProxy.html"], + \["AWTEventMulticaster", "java/awt/AWTEventMulticaster.html"], + \["AWTException", "java/awt/AWTException.html"], + \["AWTKeyStroke", "java/awt/AWTKeyStroke.html"], + \["AWTPermission", "java/awt/AWTPermission.html"], + \["BackingStoreException", "java/util/prefs/BackingStoreException.html"], + \["BAD_CONTEXT", "org/omg/CORBA/BAD_CONTEXT.html"], + \["BAD_INV_ORDER", "org/omg/CORBA/BAD_INV_ORDER.html"], + \["BAD_OPERATION", "org/omg/CORBA/BAD_OPERATION.html"], + \["BAD_PARAM", "org/omg/CORBA/BAD_PARAM.html"], + \["BAD_POLICY", "org/omg/CORBA/BAD_POLICY.html"], + \["BAD_POLICY_TYPE", "org/omg/CORBA/BAD_POLICY_TYPE.html"], + \["BAD_POLICY_VALUE", "org/omg/CORBA/BAD_POLICY_VALUE.html"], + \["BAD_QOS", "org/omg/CORBA/BAD_QOS.html"], + \["BAD_TYPECODE", "org/omg/CORBA/BAD_TYPECODE.html"], + \["BadAttributeValueExpException", "javax/management/BadAttributeValueExpException.html"], + \["BadBinaryOpValueExpException", "javax/management/BadBinaryOpValueExpException.html"], + \["BadKind", "org/omg/CORBA/TypeCodePackage/BadKind.html"], + \["BadLocationException", "javax/swing/text/BadLocationException.html"], + \["BadPaddingException", "javax/crypto/BadPaddingException.html"], + \["BadStringOperationException", "javax/management/BadStringOperationException.html"], + \["BandCombineOp", "java/awt/image/BandCombineOp.html"], + \["BandedSampleModel", "java/awt/image/BandedSampleModel.html"], + \["BaseRowSet", "javax/sql/rowset/BaseRowSet.html"], + \["BasicArrowButton", "javax/swing/plaf/basic/BasicArrowButton.html"], + \["BasicAttribute", "javax/naming/directory/BasicAttribute.html"], + \["BasicAttributes", "javax/naming/directory/BasicAttributes.html"], + \["BasicBorders", "javax/swing/plaf/basic/BasicBorders.html"], + \["BasicBorders.ButtonBorder", "javax/swing/plaf/basic/BasicBorders.ButtonBorder.html"], + \["BasicBorders.FieldBorder", "javax/swing/plaf/basic/BasicBorders.FieldBorder.html"], + \["BasicBorders.MarginBorder", "javax/swing/plaf/basic/BasicBorders.MarginBorder.html"], + \["BasicBorders.MenuBarBorder", "javax/swing/plaf/basic/BasicBorders.MenuBarBorder.html"], + \["BasicBorders.RadioButtonBorder", "javax/swing/plaf/basic/BasicBorders.RadioButtonBorder.html"], + \["BasicBorders.RolloverButtonBorder", "javax/swing/plaf/basic/BasicBorders.RolloverButtonBorder.html"], + \["BasicBorders.SplitPaneBorder", "javax/swing/plaf/basic/BasicBorders.SplitPaneBorder.html"], + \["BasicBorders.ToggleButtonBorder", "javax/swing/plaf/basic/BasicBorders.ToggleButtonBorder.html"], + \["BasicButtonListener", "javax/swing/plaf/basic/BasicButtonListener.html"], + \["BasicButtonUI", "javax/swing/plaf/basic/BasicButtonUI.html"], + \["BasicCheckBoxMenuItemUI", "javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.html"], + \["BasicCheckBoxUI", "javax/swing/plaf/basic/BasicCheckBoxUI.html"], + \["BasicColorChooserUI", "javax/swing/plaf/basic/BasicColorChooserUI.html"], + \["BasicComboBoxEditor", "javax/swing/plaf/basic/BasicComboBoxEditor.html"], + \["BasicComboBoxEditor.UIResource", "javax/swing/plaf/basic/BasicComboBoxEditor.UIResource.html"], + \["BasicComboBoxRenderer", "javax/swing/plaf/basic/BasicComboBoxRenderer.html"], + \["BasicComboBoxRenderer.UIResource", "javax/swing/plaf/basic/BasicComboBoxRenderer.UIResource.html"], + \["BasicComboBoxUI", "javax/swing/plaf/basic/BasicComboBoxUI.html"], + \["BasicComboPopup", "javax/swing/plaf/basic/BasicComboPopup.html"], + \["BasicControl", "javax/naming/ldap/BasicControl.html"], + \["BasicDesktopIconUI", "javax/swing/plaf/basic/BasicDesktopIconUI.html"], + \["BasicDesktopPaneUI", "javax/swing/plaf/basic/BasicDesktopPaneUI.html"], + \["BasicDirectoryModel", "javax/swing/plaf/basic/BasicDirectoryModel.html"], + \["BasicEditorPaneUI", "javax/swing/plaf/basic/BasicEditorPaneUI.html"], + \["BasicFileChooserUI", "javax/swing/plaf/basic/BasicFileChooserUI.html"], + \["BasicFormattedTextFieldUI", "javax/swing/plaf/basic/BasicFormattedTextFieldUI.html"], + \["BasicGraphicsUtils", "javax/swing/plaf/basic/BasicGraphicsUtils.html"], + \["BasicHTML", "javax/swing/plaf/basic/BasicHTML.html"], + \["BasicIconFactory", "javax/swing/plaf/basic/BasicIconFactory.html"], + \["BasicInternalFrameTitlePane", "javax/swing/plaf/basic/BasicInternalFrameTitlePane.html"], + \["BasicInternalFrameUI", "javax/swing/plaf/basic/BasicInternalFrameUI.html"], + \["BasicLabelUI", "javax/swing/plaf/basic/BasicLabelUI.html"], + \["BasicListUI", "javax/swing/plaf/basic/BasicListUI.html"], + \["BasicLookAndFeel", "javax/swing/plaf/basic/BasicLookAndFeel.html"], + \["BasicMenuBarUI", "javax/swing/plaf/basic/BasicMenuBarUI.html"], + \["BasicMenuItemUI", "javax/swing/plaf/basic/BasicMenuItemUI.html"], + \["BasicMenuUI", "javax/swing/plaf/basic/BasicMenuUI.html"], + \["BasicOptionPaneUI", "javax/swing/plaf/basic/BasicOptionPaneUI.html"], + \["BasicOptionPaneUI.ButtonAreaLayout", "javax/swing/plaf/basic/BasicOptionPaneUI.ButtonAreaLayout.html"], + \["BasicPanelUI", "javax/swing/plaf/basic/BasicPanelUI.html"], + \["BasicPasswordFieldUI", "javax/swing/plaf/basic/BasicPasswordFieldUI.html"], + \["BasicPermission", "java/security/BasicPermission.html"], + \["BasicPopupMenuSeparatorUI", "javax/swing/plaf/basic/BasicPopupMenuSeparatorUI.html"], + \["BasicPopupMenuUI", "javax/swing/plaf/basic/BasicPopupMenuUI.html"], + \["BasicProgressBarUI", "javax/swing/plaf/basic/BasicProgressBarUI.html"], + \["BasicRadioButtonMenuItemUI", "javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.html"], + \["BasicRadioButtonUI", "javax/swing/plaf/basic/BasicRadioButtonUI.html"], + \["BasicRootPaneUI", "javax/swing/plaf/basic/BasicRootPaneUI.html"], + \["BasicScrollBarUI", "javax/swing/plaf/basic/BasicScrollBarUI.html"], + \["BasicScrollPaneUI", "javax/swing/plaf/basic/BasicScrollPaneUI.html"], + \["BasicSeparatorUI", "javax/swing/plaf/basic/BasicSeparatorUI.html"], + \["BasicSliderUI", "javax/swing/plaf/basic/BasicSliderUI.html"], + \["BasicSpinnerUI", "javax/swing/plaf/basic/BasicSpinnerUI.html"], + \["BasicSplitPaneDivider", "javax/swing/plaf/basic/BasicSplitPaneDivider.html"], + \["BasicSplitPaneUI", "javax/swing/plaf/basic/BasicSplitPaneUI.html"], + \["BasicStroke", "java/awt/BasicStroke.html"], + \["BasicTabbedPaneUI", "javax/swing/plaf/basic/BasicTabbedPaneUI.html"], + \["BasicTableHeaderUI", "javax/swing/plaf/basic/BasicTableHeaderUI.html"], + \["BasicTableUI", "javax/swing/plaf/basic/BasicTableUI.html"], + \["BasicTextAreaUI", "javax/swing/plaf/basic/BasicTextAreaUI.html"], + \["BasicTextFieldUI", "javax/swing/plaf/basic/BasicTextFieldUI.html"], + \["BasicTextPaneUI", "javax/swing/plaf/basic/BasicTextPaneUI.html"], + \["BasicTextUI", "javax/swing/plaf/basic/BasicTextUI.html"], + \["BasicTextUI.BasicCaret", "javax/swing/plaf/basic/BasicTextUI.BasicCaret.html"], + \["BasicTextUI.BasicHighlighter", "javax/swing/plaf/basic/BasicTextUI.BasicHighlighter.html"], + \["BasicToggleButtonUI", "javax/swing/plaf/basic/BasicToggleButtonUI.html"], + \["BasicToolBarSeparatorUI", "javax/swing/plaf/basic/BasicToolBarSeparatorUI.html"], + \["BasicToolBarUI", "javax/swing/plaf/basic/BasicToolBarUI.html"], + \["BasicToolTipUI", "javax/swing/plaf/basic/BasicToolTipUI.html"], + \["BasicTreeUI", "javax/swing/plaf/basic/BasicTreeUI.html"], + \["BasicViewportUI", "javax/swing/plaf/basic/BasicViewportUI.html"], + \["BatchUpdateException", "java/sql/BatchUpdateException.html"], + \["BeanContext", "java/beans/beancontext/BeanContext.html"], + \["BeanContextChild", "java/beans/beancontext/BeanContextChild.html"], + \["BeanContextChildComponentProxy", "java/beans/beancontext/BeanContextChildComponentProxy.html"], + \["BeanContextChildSupport", "java/beans/beancontext/BeanContextChildSupport.html"], + \["BeanContextContainerProxy", "java/beans/beancontext/BeanContextContainerProxy.html"], + \["BeanContextEvent", "java/beans/beancontext/BeanContextEvent.html"], + \["BeanContextMembershipEvent", "java/beans/beancontext/BeanContextMembershipEvent.html"], + \["BeanContextMembershipListener", "java/beans/beancontext/BeanContextMembershipListener.html"], + \["BeanContextProxy", "java/beans/beancontext/BeanContextProxy.html"], + \["BeanContextServiceAvailableEvent", "java/beans/beancontext/BeanContextServiceAvailableEvent.html"], + \["BeanContextServiceProvider", "java/beans/beancontext/BeanContextServiceProvider.html"], + \["BeanContextServiceProviderBeanInfo", "java/beans/beancontext/BeanContextServiceProviderBeanInfo.html"], + \["BeanContextServiceRevokedEvent", "java/beans/beancontext/BeanContextServiceRevokedEvent.html"], + \["BeanContextServiceRevokedListener", "java/beans/beancontext/BeanContextServiceRevokedListener.html"], + \["BeanContextServices", "java/beans/beancontext/BeanContextServices.html"], + \["BeanContextServicesListener", "java/beans/beancontext/BeanContextServicesListener.html"], + \["BeanContextServicesSupport", "java/beans/beancontext/BeanContextServicesSupport.html"], + \["BeanContextServicesSupport.BCSSServiceProvider", "java/beans/beancontext/BeanContextServicesSupport.BCSSServiceProvider.html"], + \["BeanContextSupport", "java/beans/beancontext/BeanContextSupport.html"], + \["BeanContextSupport.BCSIterator", "java/beans/beancontext/BeanContextSupport.BCSIterator.html"], + \["BeanDescriptor", "java/beans/BeanDescriptor.html"], + \["BeanInfo", "java/beans/BeanInfo.html"], + \["Beans", "java/beans/Beans.html"], + \["BevelBorder", "javax/swing/border/BevelBorder.html"], + \["Bidi", "java/text/Bidi.html"], + \["BigDecimal", "java/math/BigDecimal.html"], + \["BigInteger", "java/math/BigInteger.html"], + \["BinaryRefAddr", "javax/naming/BinaryRefAddr.html"], + \["Binder", "javax/xml/bind/Binder.html"], + \["BindException", "java/net/BindException.html"], + \["Binding", "javax/naming/Binding.html"], + \["Binding", "javax/xml/ws/Binding.html"], + \["Binding", "org/omg/CosNaming/Binding.html"], + \["BindingHelper", "org/omg/CosNaming/BindingHelper.html"], + \["BindingHolder", "org/omg/CosNaming/BindingHolder.html"], + \["BindingIterator", "org/omg/CosNaming/BindingIterator.html"], + \["BindingIteratorHelper", "org/omg/CosNaming/BindingIteratorHelper.html"], + \["BindingIteratorHolder", "org/omg/CosNaming/BindingIteratorHolder.html"], + \["BindingIteratorOperations", "org/omg/CosNaming/BindingIteratorOperations.html"], + \["BindingIteratorPOA", "org/omg/CosNaming/BindingIteratorPOA.html"], + \["BindingListHelper", "org/omg/CosNaming/BindingListHelper.html"], + \["BindingListHolder", "org/omg/CosNaming/BindingListHolder.html"], + \["BindingProvider", "javax/xml/ws/BindingProvider.html"], + \["Bindings", "javax/script/Bindings.html"], + \["BindingType", "javax/xml/ws/BindingType.html"], + \["BindingType", "org/omg/CosNaming/BindingType.html"], + \["BindingTypeHelper", "org/omg/CosNaming/BindingTypeHelper.html"], + \["BindingTypeHolder", "org/omg/CosNaming/BindingTypeHolder.html"], + \["BitSet", "java/util/BitSet.html"], + \["Blob", "java/sql/Blob.html"], + \["BlockingDeque", "java/util/concurrent/BlockingDeque.html"], + \["BlockingQueue", "java/util/concurrent/BlockingQueue.html"], + \["BlockView", "javax/swing/text/html/BlockView.html"], + \["BMPImageWriteParam", "javax/imageio/plugins/bmp/BMPImageWriteParam.html"], + \["Book", "java/awt/print/Book.html"], + \["Boolean", "java/lang/Boolean.html"], + \["BooleanControl", "javax/sound/sampled/BooleanControl.html"], + \["BooleanControl.Type", "javax/sound/sampled/BooleanControl.Type.html"], + \["BooleanHolder", "org/omg/CORBA/BooleanHolder.html"], + \["BooleanSeqHelper", "org/omg/CORBA/BooleanSeqHelper.html"], + \["BooleanSeqHolder", "org/omg/CORBA/BooleanSeqHolder.html"], + \["Border", "javax/swing/border/Border.html"], + \["BorderFactory", "javax/swing/BorderFactory.html"], + \["BorderLayout", "java/awt/BorderLayout.html"], + \["BorderUIResource", "javax/swing/plaf/BorderUIResource.html"], + \["BorderUIResource.BevelBorderUIResource", "javax/swing/plaf/BorderUIResource.BevelBorderUIResource.html"], + \["BorderUIResource.CompoundBorderUIResource", "javax/swing/plaf/BorderUIResource.CompoundBorderUIResource.html"], + \["BorderUIResource.EmptyBorderUIResource", "javax/swing/plaf/BorderUIResource.EmptyBorderUIResource.html"], + \["BorderUIResource.EtchedBorderUIResource", "javax/swing/plaf/BorderUIResource.EtchedBorderUIResource.html"], + \["BorderUIResource.LineBorderUIResource", "javax/swing/plaf/BorderUIResource.LineBorderUIResource.html"], + \["BorderUIResource.MatteBorderUIResource", "javax/swing/plaf/BorderUIResource.MatteBorderUIResource.html"], + \["BorderUIResource.TitledBorderUIResource", "javax/swing/plaf/BorderUIResource.TitledBorderUIResource.html"], + \["BoundedRangeModel", "javax/swing/BoundedRangeModel.html"], + \["Bounds", "org/omg/CORBA/Bounds.html"], + \["Bounds", "org/omg/CORBA/TypeCodePackage/Bounds.html"], + \["Box", "javax/swing/Box.html"], + \["Box.Filler", "javax/swing/Box.Filler.html"], + \["BoxedValueHelper", "org/omg/CORBA/portable/BoxedValueHelper.html"], + \["BoxLayout", "javax/swing/BoxLayout.html"], + \["BoxView", "javax/swing/text/BoxView.html"], + \["BreakIterator", "java/text/BreakIterator.html"], + \["BreakIteratorProvider", "java/text/spi/BreakIteratorProvider.html"], + \["BrokenBarrierException", "java/util/concurrent/BrokenBarrierException.html"], + \["Buffer", "java/nio/Buffer.html"], + \["BufferCapabilities", "java/awt/BufferCapabilities.html"], + \["BufferCapabilities.FlipContents", "java/awt/BufferCapabilities.FlipContents.html"], + \["BufferedImage", "java/awt/image/BufferedImage.html"], + \["BufferedImageFilter", "java/awt/image/BufferedImageFilter.html"], + \["BufferedImageOp", "java/awt/image/BufferedImageOp.html"], + \["BufferedInputStream", "java/io/BufferedInputStream.html"], + \["BufferedOutputStream", "java/io/BufferedOutputStream.html"], + \["BufferedReader", "java/io/BufferedReader.html"], + \["BufferedWriter", "java/io/BufferedWriter.html"], + \["BufferOverflowException", "java/nio/BufferOverflowException.html"], + \["BufferStrategy", "java/awt/image/BufferStrategy.html"], + \["BufferUnderflowException", "java/nio/BufferUnderflowException.html"], + \["Button", "java/awt/Button.html"], + \["ButtonGroup", "javax/swing/ButtonGroup.html"], + \["ButtonModel", "javax/swing/ButtonModel.html"], + \["ButtonUI", "javax/swing/plaf/ButtonUI.html"], + \["Byte", "java/lang/Byte.html"], + \["ByteArrayInputStream", "java/io/ByteArrayInputStream.html"], + \["ByteArrayOutputStream", "java/io/ByteArrayOutputStream.html"], + \["ByteBuffer", "java/nio/ByteBuffer.html"], + \["ByteChannel", "java/nio/channels/ByteChannel.html"], + \["ByteHolder", "org/omg/CORBA/ByteHolder.html"], + \["ByteLookupTable", "java/awt/image/ByteLookupTable.html"], + \["ByteOrder", "java/nio/ByteOrder.html"], + \["C14NMethodParameterSpec", "javax/xml/crypto/dsig/spec/C14NMethodParameterSpec.html"], + \["CachedRowSet", "javax/sql/rowset/CachedRowSet.html"], + \["CacheRequest", "java/net/CacheRequest.html"], + \["CacheResponse", "java/net/CacheResponse.html"], + \["Calendar", "java/util/Calendar.html"], + \["Callable", "java/util/concurrent/Callable.html"], + \["CallableStatement", "java/sql/CallableStatement.html"], + \["Callback", "javax/security/auth/callback/Callback.html"], + \["CallbackHandler", "javax/security/auth/callback/CallbackHandler.html"], + \["CancelablePrintJob", "javax/print/CancelablePrintJob.html"], + \["CancellationException", "java/util/concurrent/CancellationException.html"], + \["CancelledKeyException", "java/nio/channels/CancelledKeyException.html"], + \["CannotProceed", "org/omg/CosNaming/NamingContextPackage/CannotProceed.html"], + \["CannotProceedException", "javax/naming/CannotProceedException.html"], + \["CannotProceedHelper", "org/omg/CosNaming/NamingContextPackage/CannotProceedHelper.html"], + \["CannotProceedHolder", "org/omg/CosNaming/NamingContextPackage/CannotProceedHolder.html"], + \["CannotRedoException", "javax/swing/undo/CannotRedoException.html"], + \["CannotUndoException", "javax/swing/undo/CannotUndoException.html"], + \["CanonicalizationMethod", "javax/xml/crypto/dsig/CanonicalizationMethod.html"], + \["Canvas", "java/awt/Canvas.html"], + \["CardLayout", "java/awt/CardLayout.html"], + \["Caret", "javax/swing/text/Caret.html"], + \["CaretEvent", "javax/swing/event/CaretEvent.html"], + \["CaretListener", "javax/swing/event/CaretListener.html"], + \["CDATASection", "org/w3c/dom/CDATASection.html"], + \["CellEditor", "javax/swing/CellEditor.html"], + \["CellEditorListener", "javax/swing/event/CellEditorListener.html"], + \["CellRendererPane", "javax/swing/CellRendererPane.html"], + \["Certificate", "java/security/cert/Certificate.html"], + \["Certificate", "java/security/Certificate.html"], + \["Certificate", "javax/security/cert/Certificate.html"], + \["Certificate.CertificateRep", "java/security/cert/Certificate.CertificateRep.html"], + \["CertificateEncodingException", "java/security/cert/CertificateEncodingException.html"], + \["CertificateEncodingException", "javax/security/cert/CertificateEncodingException.html"], + \["CertificateException", "java/security/cert/CertificateException.html"], + \["CertificateException", "javax/security/cert/CertificateException.html"], + \["CertificateExpiredException", "java/security/cert/CertificateExpiredException.html"], + \["CertificateExpiredException", "javax/security/cert/CertificateExpiredException.html"], + \["CertificateFactory", "java/security/cert/CertificateFactory.html"], + \["CertificateFactorySpi", "java/security/cert/CertificateFactorySpi.html"], + \["CertificateNotYetValidException", "java/security/cert/CertificateNotYetValidException.html"], + \["CertificateNotYetValidException", "javax/security/cert/CertificateNotYetValidException.html"], + \["CertificateParsingException", "java/security/cert/CertificateParsingException.html"], + \["CertificateParsingException", "javax/security/cert/CertificateParsingException.html"], + \["CertPath", "java/security/cert/CertPath.html"], + \["CertPath.CertPathRep", "java/security/cert/CertPath.CertPathRep.html"], + \["CertPathBuilder", "java/security/cert/CertPathBuilder.html"], + \["CertPathBuilderException", "java/security/cert/CertPathBuilderException.html"], + \["CertPathBuilderResult", "java/security/cert/CertPathBuilderResult.html"], + \["CertPathBuilderSpi", "java/security/cert/CertPathBuilderSpi.html"], + \["CertPathParameters", "java/security/cert/CertPathParameters.html"], + \["CertPathTrustManagerParameters", "javax/net/ssl/CertPathTrustManagerParameters.html"], + \["CertPathValidator", "java/security/cert/CertPathValidator.html"], + \["CertPathValidatorException", "java/security/cert/CertPathValidatorException.html"], + \["CertPathValidatorResult", "java/security/cert/CertPathValidatorResult.html"], + \["CertPathValidatorSpi", "java/security/cert/CertPathValidatorSpi.html"], + \["CertSelector", "java/security/cert/CertSelector.html"], + \["CertStore", "java/security/cert/CertStore.html"], + \["CertStoreException", "java/security/cert/CertStoreException.html"], + \["CertStoreParameters", "java/security/cert/CertStoreParameters.html"], + \["CertStoreSpi", "java/security/cert/CertStoreSpi.html"], + \["ChangedCharSetException", "javax/swing/text/ChangedCharSetException.html"], + \["ChangeEvent", "javax/swing/event/ChangeEvent.html"], + \["ChangeListener", "javax/swing/event/ChangeListener.html"], + \["Channel", "java/nio/channels/Channel.html"], + \["ChannelBinding", "org/ietf/jgss/ChannelBinding.html"], + \["Channels", "java/nio/channels/Channels.html"], + \["Character", "java/lang/Character.html"], + \["Character.Subset", "java/lang/Character.Subset.html"], + \["Character.UnicodeBlock", "java/lang/Character.UnicodeBlock.html"], + \["CharacterCodingException", "java/nio/charset/CharacterCodingException.html"], + \["CharacterData", "org/w3c/dom/CharacterData.html"], + \["CharacterIterator", "java/text/CharacterIterator.html"], + \["Characters", "javax/xml/stream/events/Characters.html"], + \["CharArrayReader", "java/io/CharArrayReader.html"], + \["CharArrayWriter", "java/io/CharArrayWriter.html"], + \["CharBuffer", "java/nio/CharBuffer.html"], + \["CharConversionException", "java/io/CharConversionException.html"], + \["CharHolder", "org/omg/CORBA/CharHolder.html"], + \["CharSeqHelper", "org/omg/CORBA/CharSeqHelper.html"], + \["CharSeqHolder", "org/omg/CORBA/CharSeqHolder.html"], + \["CharSequence", "java/lang/CharSequence.html"], + \["Charset", "java/nio/charset/Charset.html"], + \["CharsetDecoder", "java/nio/charset/CharsetDecoder.html"], + \["CharsetEncoder", "java/nio/charset/CharsetEncoder.html"], + \["CharsetProvider", "java/nio/charset/spi/CharsetProvider.html"], + \["Checkbox", "java/awt/Checkbox.html"], + \["CheckboxGroup", "java/awt/CheckboxGroup.html"], + \["CheckboxMenuItem", "java/awt/CheckboxMenuItem.html"], + \["CheckedInputStream", "java/util/zip/CheckedInputStream.html"], + \["CheckedOutputStream", "java/util/zip/CheckedOutputStream.html"], + \["Checksum", "java/util/zip/Checksum.html"], + \["Choice", "java/awt/Choice.html"], + \["ChoiceCallback", "javax/security/auth/callback/ChoiceCallback.html"], + \["ChoiceFormat", "java/text/ChoiceFormat.html"], + \["Chromaticity", "javax/print/attribute/standard/Chromaticity.html"], + \["Cipher", "javax/crypto/Cipher.html"], + \["CipherInputStream", "javax/crypto/CipherInputStream.html"], + \["CipherOutputStream", "javax/crypto/CipherOutputStream.html"], + \["CipherSpi", "javax/crypto/CipherSpi.html"], + \["Class", "java/lang/Class.html"], + \["ClassCastException", "java/lang/ClassCastException.html"], + \["ClassCircularityError", "java/lang/ClassCircularityError.html"], + \["ClassDefinition", "java/lang/instrument/ClassDefinition.html"], + \["ClassDesc", "javax/rmi/CORBA/ClassDesc.html"], + \["ClassFileTransformer", "java/lang/instrument/ClassFileTransformer.html"], + \["ClassFormatError", "java/lang/ClassFormatError.html"], + \["ClassLoader", "java/lang/ClassLoader.html"], + \["ClassLoaderRepository", "javax/management/loading/ClassLoaderRepository.html"], + \["ClassLoadingMXBean", "java/lang/management/ClassLoadingMXBean.html"], + \["ClassNotFoundException", "java/lang/ClassNotFoundException.html"], + \["ClientInfoStatus", "java/sql/ClientInfoStatus.html"], + \["ClientRequestInfo", "org/omg/PortableInterceptor/ClientRequestInfo.html"], + \["ClientRequestInfoOperations", "org/omg/PortableInterceptor/ClientRequestInfoOperations.html"], + \["ClientRequestInterceptor", "org/omg/PortableInterceptor/ClientRequestInterceptor.html"], + \["ClientRequestInterceptorOperations", "org/omg/PortableInterceptor/ClientRequestInterceptorOperations.html"], + \["Clip", "javax/sound/sampled/Clip.html"], + \["Clipboard", "java/awt/datatransfer/Clipboard.html"], + \["ClipboardOwner", "java/awt/datatransfer/ClipboardOwner.html"], + \["Clob", "java/sql/Clob.html"], + \["Cloneable", "java/lang/Cloneable.html"], + \["CloneNotSupportedException", "java/lang/CloneNotSupportedException.html"], + \["Closeable", "java/io/Closeable.html"], + \["ClosedByInterruptException", "java/nio/channels/ClosedByInterruptException.html"], + \["ClosedChannelException", "java/nio/channels/ClosedChannelException.html"], + \["ClosedSelectorException", "java/nio/channels/ClosedSelectorException.html"], + \["CMMException", "java/awt/color/CMMException.html"], + \["Codec", "org/omg/IOP/Codec.html"], + \["CodecFactory", "org/omg/IOP/CodecFactory.html"], + \["CodecFactoryHelper", "org/omg/IOP/CodecFactoryHelper.html"], + \["CodecFactoryOperations", "org/omg/IOP/CodecFactoryOperations.html"], + \["CodecOperations", "org/omg/IOP/CodecOperations.html"], + \["CoderMalfunctionError", "java/nio/charset/CoderMalfunctionError.html"], + \["CoderResult", "java/nio/charset/CoderResult.html"], + \["CODESET_INCOMPATIBLE", "org/omg/CORBA/CODESET_INCOMPATIBLE.html"], + \["CodeSets", "org/omg/IOP/CodeSets.html"], + \["CodeSigner", "java/security/CodeSigner.html"], + \["CodeSource", "java/security/CodeSource.html"], + \["CodingErrorAction", "java/nio/charset/CodingErrorAction.html"], + \["CollapsedStringAdapter", "javax/xml/bind/annotation/adapters/CollapsedStringAdapter.html"], + \["CollationElementIterator", "java/text/CollationElementIterator.html"], + \["CollationKey", "java/text/CollationKey.html"], + \["Collator", "java/text/Collator.html"], + \["CollatorProvider", "java/text/spi/CollatorProvider.html"], + \["Collection", "java/util/Collection.html"], + \["CollectionCertStoreParameters", "java/security/cert/CollectionCertStoreParameters.html"], + \["Collections", "java/util/Collections.html"], + \["Color", "java/awt/Color.html"], + \["ColorChooserComponentFactory", "javax/swing/colorchooser/ColorChooserComponentFactory.html"], + \["ColorChooserUI", "javax/swing/plaf/ColorChooserUI.html"], + \["ColorConvertOp", "java/awt/image/ColorConvertOp.html"], + \["ColorModel", "java/awt/image/ColorModel.html"], + \["ColorSelectionModel", "javax/swing/colorchooser/ColorSelectionModel.html"], + \["ColorSpace", "java/awt/color/ColorSpace.html"], + \["ColorSupported", "javax/print/attribute/standard/ColorSupported.html"], + \["ColorType", "javax/swing/plaf/synth/ColorType.html"], + \["ColorUIResource", "javax/swing/plaf/ColorUIResource.html"], + \["ComboBoxEditor", "javax/swing/ComboBoxEditor.html"], + \["ComboBoxModel", "javax/swing/ComboBoxModel.html"], + \["ComboBoxUI", "javax/swing/plaf/ComboBoxUI.html"], + \["ComboPopup", "javax/swing/plaf/basic/ComboPopup.html"], + \["COMM_FAILURE", "org/omg/CORBA/COMM_FAILURE.html"], + \["CommandInfo", "javax/activation/CommandInfo.html"], + \["CommandMap", "javax/activation/CommandMap.html"], + \["CommandObject", "javax/activation/CommandObject.html"], + \["Comment", "javax/xml/stream/events/Comment.html"], + \["Comment", "org/w3c/dom/Comment.html"], + \["CommonDataSource", "javax/sql/CommonDataSource.html"], + \["CommunicationException", "javax/naming/CommunicationException.html"], + \["Comparable", "java/lang/Comparable.html"], + \["Comparator", "java/util/Comparator.html"], + \["Compilable", "javax/script/Compilable.html"], + \["CompilationMXBean", "java/lang/management/CompilationMXBean.html"], + \["CompiledScript", "javax/script/CompiledScript.html"], + \["Compiler", "java/lang/Compiler.html"], + \["Completion", "javax/annotation/processing/Completion.html"], + \["Completions", "javax/annotation/processing/Completions.html"], + \["CompletionService", "java/util/concurrent/CompletionService.html"], + \["CompletionStatus", "org/omg/CORBA/CompletionStatus.html"], + \["CompletionStatusHelper", "org/omg/CORBA/CompletionStatusHelper.html"], + \["Component", "java/awt/Component.html"], + \["Component.BaselineResizeBehavior", "java/awt/Component.BaselineResizeBehavior.html"], + \["ComponentAdapter", "java/awt/event/ComponentAdapter.html"], + \["ComponentColorModel", "java/awt/image/ComponentColorModel.html"], + \["ComponentEvent", "java/awt/event/ComponentEvent.html"], + \["ComponentIdHelper", "org/omg/IOP/ComponentIdHelper.html"], + \["ComponentInputMap", "javax/swing/ComponentInputMap.html"], + \["ComponentInputMapUIResource", "javax/swing/plaf/ComponentInputMapUIResource.html"], + \["ComponentListener", "java/awt/event/ComponentListener.html"], + \["ComponentOrientation", "java/awt/ComponentOrientation.html"], + \["ComponentSampleModel", "java/awt/image/ComponentSampleModel.html"], + \["ComponentUI", "javax/swing/plaf/ComponentUI.html"], + \["ComponentView", "javax/swing/text/ComponentView.html"], + \["Composite", "java/awt/Composite.html"], + \["CompositeContext", "java/awt/CompositeContext.html"], + \["CompositeData", "javax/management/openmbean/CompositeData.html"], + \["CompositeDataInvocationHandler", "javax/management/openmbean/CompositeDataInvocationHandler.html"], + \["CompositeDataSupport", "javax/management/openmbean/CompositeDataSupport.html"], + \["CompositeDataView", "javax/management/openmbean/CompositeDataView.html"], + \["CompositeName", "javax/naming/CompositeName.html"], + \["CompositeType", "javax/management/openmbean/CompositeType.html"], + \["CompositeView", "javax/swing/text/CompositeView.html"], + \["CompoundBorder", "javax/swing/border/CompoundBorder.html"], + \["CompoundControl", "javax/sound/sampled/CompoundControl.html"], + \["CompoundControl.Type", "javax/sound/sampled/CompoundControl.Type.html"], + \["CompoundEdit", "javax/swing/undo/CompoundEdit.html"], + \["CompoundName", "javax/naming/CompoundName.html"], + \["Compression", "javax/print/attribute/standard/Compression.html"], + \["ConcurrentHashMap", "java/util/concurrent/ConcurrentHashMap.html"], + \["ConcurrentLinkedQueue", "java/util/concurrent/ConcurrentLinkedQueue.html"], + \["ConcurrentMap", "java/util/concurrent/ConcurrentMap.html"], + \["ConcurrentModificationException", "java/util/ConcurrentModificationException.html"], + \["ConcurrentNavigableMap", "java/util/concurrent/ConcurrentNavigableMap.html"], + \["ConcurrentSkipListMap", "java/util/concurrent/ConcurrentSkipListMap.html"], + \["ConcurrentSkipListSet", "java/util/concurrent/ConcurrentSkipListSet.html"], + \["Condition", "java/util/concurrent/locks/Condition.html"], + \["Configuration", "javax/security/auth/login/Configuration.html"], + \["Configuration.Parameters", "javax/security/auth/login/Configuration.Parameters.html"], + \["ConfigurationException", "javax/naming/ConfigurationException.html"], + \["ConfigurationSpi", "javax/security/auth/login/ConfigurationSpi.html"], + \["ConfirmationCallback", "javax/security/auth/callback/ConfirmationCallback.html"], + \["ConnectException", "java/net/ConnectException.html"], + \["ConnectException", "java/rmi/ConnectException.html"], + \["ConnectIOException", "java/rmi/ConnectIOException.html"], + \["Connection", "java/sql/Connection.html"], + \["ConnectionEvent", "javax/sql/ConnectionEvent.html"], + \["ConnectionEventListener", "javax/sql/ConnectionEventListener.html"], + \["ConnectionPendingException", "java/nio/channels/ConnectionPendingException.html"], + \["ConnectionPoolDataSource", "javax/sql/ConnectionPoolDataSource.html"], + \["Console", "java/io/Console.html"], + \["ConsoleHandler", "java/util/logging/ConsoleHandler.html"], + \["Constructor", "java/lang/reflect/Constructor.html"], + \["ConstructorProperties", "java/beans/ConstructorProperties.html"], + \["Container", "java/awt/Container.html"], + \["ContainerAdapter", "java/awt/event/ContainerAdapter.html"], + \["ContainerEvent", "java/awt/event/ContainerEvent.html"], + \["ContainerListener", "java/awt/event/ContainerListener.html"], + \["ContainerOrderFocusTraversalPolicy", "java/awt/ContainerOrderFocusTraversalPolicy.html"], + \["ContentHandler", "java/net/ContentHandler.html"], + \["ContentHandler", "org/xml/sax/ContentHandler.html"], + \["ContentHandlerFactory", "java/net/ContentHandlerFactory.html"], + \["ContentModel", "javax/swing/text/html/parser/ContentModel.html"], + \["Context", "javax/naming/Context.html"], + \["Context", "org/omg/CORBA/Context.html"], + \["ContextList", "org/omg/CORBA/ContextList.html"], + \["ContextNotEmptyException", "javax/naming/ContextNotEmptyException.html"], + \["ContextualRenderedImageFactory", "java/awt/image/renderable/ContextualRenderedImageFactory.html"], + \["Control", "javax/naming/ldap/Control.html"], + \["Control", "javax/sound/sampled/Control.html"], + \["Control.Type", "javax/sound/sampled/Control.Type.html"], + \["ControlFactory", "javax/naming/ldap/ControlFactory.html"], + \["ControllerEventListener", "javax/sound/midi/ControllerEventListener.html"], + \["ConvolveOp", "java/awt/image/ConvolveOp.html"], + \["CookieHandler", "java/net/CookieHandler.html"], + \["CookieHolder", "org/omg/PortableServer/ServantLocatorPackage/CookieHolder.html"], + \["CookieManager", "java/net/CookieManager.html"], + \["CookiePolicy", "java/net/CookiePolicy.html"], + \["CookieStore", "java/net/CookieStore.html"], + \["Copies", "javax/print/attribute/standard/Copies.html"], + \["CopiesSupported", "javax/print/attribute/standard/CopiesSupported.html"], + \["CopyOnWriteArrayList", "java/util/concurrent/CopyOnWriteArrayList.html"], + \["CopyOnWriteArraySet", "java/util/concurrent/CopyOnWriteArraySet.html"], + \["CountDownLatch", "java/util/concurrent/CountDownLatch.html"], + \["CounterMonitor", "javax/management/monitor/CounterMonitor.html"], + \["CounterMonitorMBean", "javax/management/monitor/CounterMonitorMBean.html"], + \["CRC32", "java/util/zip/CRC32.html"], + \["CredentialException", "javax/security/auth/login/CredentialException.html"], + \["CredentialExpiredException", "javax/security/auth/login/CredentialExpiredException.html"], + \["CredentialNotFoundException", "javax/security/auth/login/CredentialNotFoundException.html"], + \["CRL", "java/security/cert/CRL.html"], + \["CRLException", "java/security/cert/CRLException.html"], + \["CRLSelector", "java/security/cert/CRLSelector.html"], + \["CropImageFilter", "java/awt/image/CropImageFilter.html"], + \["CSS", "javax/swing/text/html/CSS.html"], + \["CSS.Attribute", "javax/swing/text/html/CSS.Attribute.html"], + \["CTX_RESTRICT_SCOPE", "org/omg/CORBA/CTX_RESTRICT_SCOPE.html"], + \["CubicCurve2D", "java/awt/geom/CubicCurve2D.html"], + \["CubicCurve2D.Double", "java/awt/geom/CubicCurve2D.Double.html"], + \["CubicCurve2D.Float", "java/awt/geom/CubicCurve2D.Float.html"], + \["Currency", "java/util/Currency.html"], + \["CurrencyNameProvider", "java/util/spi/CurrencyNameProvider.html"], + \["Current", "org/omg/CORBA/Current.html"], + \["Current", "org/omg/PortableInterceptor/Current.html"], + \["Current", "org/omg/PortableServer/Current.html"], + \["CurrentHelper", "org/omg/CORBA/CurrentHelper.html"], + \["CurrentHelper", "org/omg/PortableInterceptor/CurrentHelper.html"], + \["CurrentHelper", "org/omg/PortableServer/CurrentHelper.html"], + \["CurrentHolder", "org/omg/CORBA/CurrentHolder.html"], + \["CurrentOperations", "org/omg/CORBA/CurrentOperations.html"], + \["CurrentOperations", "org/omg/PortableInterceptor/CurrentOperations.html"], + \["CurrentOperations", "org/omg/PortableServer/CurrentOperations.html"], + \["Cursor", "java/awt/Cursor.html"], + \["Customizer", "java/beans/Customizer.html"], + \["CustomMarshal", "org/omg/CORBA/CustomMarshal.html"], + \["CustomValue", "org/omg/CORBA/portable/CustomValue.html"], + \["CyclicBarrier", "java/util/concurrent/CyclicBarrier.html"], + \["Data", "javax/xml/crypto/Data.html"], + \["DATA_CONVERSION", "org/omg/CORBA/DATA_CONVERSION.html"], + \["DatabaseMetaData", "java/sql/DatabaseMetaData.html"], + \["DataBindingException", "javax/xml/bind/DataBindingException.html"], + \["DataBuffer", "java/awt/image/DataBuffer.html"], + \["DataBufferByte", "java/awt/image/DataBufferByte.html"], + \["DataBufferDouble", "java/awt/image/DataBufferDouble.html"], + \["DataBufferFloat", "java/awt/image/DataBufferFloat.html"], + \["DataBufferInt", "java/awt/image/DataBufferInt.html"], + \["DataBufferShort", "java/awt/image/DataBufferShort.html"], + \["DataBufferUShort", "java/awt/image/DataBufferUShort.html"], + \["DataContentHandler", "javax/activation/DataContentHandler.html"], + \["DataContentHandlerFactory", "javax/activation/DataContentHandlerFactory.html"], + \["DataFlavor", "java/awt/datatransfer/DataFlavor.html"], + \["DataFormatException", "java/util/zip/DataFormatException.html"], + \["DatagramChannel", "java/nio/channels/DatagramChannel.html"], + \["DatagramPacket", "java/net/DatagramPacket.html"], + \["DatagramSocket", "java/net/DatagramSocket.html"], + \["DatagramSocketImpl", "java/net/DatagramSocketImpl.html"], + \["DatagramSocketImplFactory", "java/net/DatagramSocketImplFactory.html"], + \["DataHandler", "javax/activation/DataHandler.html"], + \["DataInput", "java/io/DataInput.html"], + \["DataInputStream", "java/io/DataInputStream.html"], + \["DataInputStream", "org/omg/CORBA/DataInputStream.html"], + \["DataLine", "javax/sound/sampled/DataLine.html"], + \["DataLine.Info", "javax/sound/sampled/DataLine.Info.html"], + \["DataOutput", "java/io/DataOutput.html"], + \["DataOutputStream", "java/io/DataOutputStream.html"], + \["DataOutputStream", "org/omg/CORBA/DataOutputStream.html"], + \["DataSource", "javax/activation/DataSource.html"], + \["DataSource", "javax/sql/DataSource.html"], + \["DataTruncation", "java/sql/DataTruncation.html"], + \["DatatypeConfigurationException", "javax/xml/datatype/DatatypeConfigurationException.html"], + \["DatatypeConstants", "javax/xml/datatype/DatatypeConstants.html"], + \["DatatypeConstants.Field", "javax/xml/datatype/DatatypeConstants.Field.html"], + \["DatatypeConverter", "javax/xml/bind/DatatypeConverter.html"], + \["DatatypeConverterInterface", "javax/xml/bind/DatatypeConverterInterface.html"], + \["DatatypeFactory", "javax/xml/datatype/DatatypeFactory.html"], + \["Date", "java/sql/Date.html"], + \["Date", "java/util/Date.html"], + \["DateFormat", "java/text/DateFormat.html"], + \["DateFormat.Field", "java/text/DateFormat.Field.html"], + \["DateFormatProvider", "java/text/spi/DateFormatProvider.html"], + \["DateFormatSymbols", "java/text/DateFormatSymbols.html"], + \["DateFormatSymbolsProvider", "java/text/spi/DateFormatSymbolsProvider.html"], + \["DateFormatter", "javax/swing/text/DateFormatter.html"], + \["DateTimeAtCompleted", "javax/print/attribute/standard/DateTimeAtCompleted.html"], + \["DateTimeAtCreation", "javax/print/attribute/standard/DateTimeAtCreation.html"], + \["DateTimeAtProcessing", "javax/print/attribute/standard/DateTimeAtProcessing.html"], + \["DateTimeSyntax", "javax/print/attribute/DateTimeSyntax.html"], + \["DebugGraphics", "javax/swing/DebugGraphics.html"], + \["DecimalFormat", "java/text/DecimalFormat.html"], + \["DecimalFormatSymbols", "java/text/DecimalFormatSymbols.html"], + \["DecimalFormatSymbolsProvider", "java/text/spi/DecimalFormatSymbolsProvider.html"], + \["DeclaredType", "javax/lang/model/type/DeclaredType.html"], + \["DeclHandler", "org/xml/sax/ext/DeclHandler.html"], + \["DefaultBoundedRangeModel", "javax/swing/DefaultBoundedRangeModel.html"], + \["DefaultButtonModel", "javax/swing/DefaultButtonModel.html"], + \["DefaultCaret", "javax/swing/text/DefaultCaret.html"], + \["DefaultCellEditor", "javax/swing/DefaultCellEditor.html"], + \["DefaultColorSelectionModel", "javax/swing/colorchooser/DefaultColorSelectionModel.html"], + \["DefaultComboBoxModel", "javax/swing/DefaultComboBoxModel.html"], + \["DefaultDesktopManager", "javax/swing/DefaultDesktopManager.html"], + \["DefaultEditorKit", "javax/swing/text/DefaultEditorKit.html"], + \["DefaultEditorKit.BeepAction", "javax/swing/text/DefaultEditorKit.BeepAction.html"], + \["DefaultEditorKit.CopyAction", "javax/swing/text/DefaultEditorKit.CopyAction.html"], + \["DefaultEditorKit.CutAction", "javax/swing/text/DefaultEditorKit.CutAction.html"], + \["DefaultEditorKit.DefaultKeyTypedAction", "javax/swing/text/DefaultEditorKit.DefaultKeyTypedAction.html"], + \["DefaultEditorKit.InsertBreakAction", "javax/swing/text/DefaultEditorKit.InsertBreakAction.html"], + \["DefaultEditorKit.InsertContentAction", "javax/swing/text/DefaultEditorKit.InsertContentAction.html"], + \["DefaultEditorKit.InsertTabAction", "javax/swing/text/DefaultEditorKit.InsertTabAction.html"], + \["DefaultEditorKit.PasteAction", "javax/swing/text/DefaultEditorKit.PasteAction.html"], + \["DefaultFocusManager", "javax/swing/DefaultFocusManager.html"], + \["DefaultFocusTraversalPolicy", "java/awt/DefaultFocusTraversalPolicy.html"], + \["DefaultFormatter", "javax/swing/text/DefaultFormatter.html"], + \["DefaultFormatterFactory", "javax/swing/text/DefaultFormatterFactory.html"], + \["DefaultHandler", "org/xml/sax/helpers/DefaultHandler.html"], + \["DefaultHandler2", "org/xml/sax/ext/DefaultHandler2.html"], + \["DefaultHighlighter", "javax/swing/text/DefaultHighlighter.html"], + \["DefaultHighlighter.DefaultHighlightPainter", "javax/swing/text/DefaultHighlighter.DefaultHighlightPainter.html"], + \["DefaultKeyboardFocusManager", "java/awt/DefaultKeyboardFocusManager.html"], + \["DefaultListCellRenderer", "javax/swing/DefaultListCellRenderer.html"], + \["DefaultListCellRenderer.UIResource", "javax/swing/DefaultListCellRenderer.UIResource.html"], + \["DefaultListModel", "javax/swing/DefaultListModel.html"], + \["DefaultListSelectionModel", "javax/swing/DefaultListSelectionModel.html"], + \["DefaultLoaderRepository", "javax/management/DefaultLoaderRepository.html"], + \["DefaultLoaderRepository", "javax/management/loading/DefaultLoaderRepository.html"], + \["DefaultMenuLayout", "javax/swing/plaf/basic/DefaultMenuLayout.html"], + \["DefaultMetalTheme", "javax/swing/plaf/metal/DefaultMetalTheme.html"], + \["DefaultMutableTreeNode", "javax/swing/tree/DefaultMutableTreeNode.html"], + \["DefaultPersistenceDelegate", "java/beans/DefaultPersistenceDelegate.html"], + \["DefaultRowSorter", "javax/swing/DefaultRowSorter.html"], + \["DefaultRowSorter.ModelWrapper", "javax/swing/DefaultRowSorter.ModelWrapper.html"], + \["DefaultSingleSelectionModel", "javax/swing/DefaultSingleSelectionModel.html"], + \["DefaultStyledDocument", "javax/swing/text/DefaultStyledDocument.html"], + \["DefaultStyledDocument.AttributeUndoableEdit", "javax/swing/text/DefaultStyledDocument.AttributeUndoableEdit.html"], + \["DefaultStyledDocument.ElementSpec", "javax/swing/text/DefaultStyledDocument.ElementSpec.html"], + \["DefaultTableCellRenderer", "javax/swing/table/DefaultTableCellRenderer.html"], + \["DefaultTableCellRenderer.UIResource", "javax/swing/table/DefaultTableCellRenderer.UIResource.html"], + \["DefaultTableColumnModel", "javax/swing/table/DefaultTableColumnModel.html"], + \["DefaultTableModel", "javax/swing/table/DefaultTableModel.html"], + \["DefaultTextUI", "javax/swing/text/DefaultTextUI.html"], + \["DefaultTreeCellEditor", "javax/swing/tree/DefaultTreeCellEditor.html"], + \["DefaultTreeCellRenderer", "javax/swing/tree/DefaultTreeCellRenderer.html"], + \["DefaultTreeModel", "javax/swing/tree/DefaultTreeModel.html"], + \["DefaultTreeSelectionModel", "javax/swing/tree/DefaultTreeSelectionModel.html"], + \["DefaultValidationEventHandler", "javax/xml/bind/helpers/DefaultValidationEventHandler.html"], + \["DefinitionKind", "org/omg/CORBA/DefinitionKind.html"], + \["DefinitionKindHelper", "org/omg/CORBA/DefinitionKindHelper.html"], + \["Deflater", "java/util/zip/Deflater.html"], + \["DeflaterInputStream", "java/util/zip/DeflaterInputStream.html"], + \["DeflaterOutputStream", "java/util/zip/DeflaterOutputStream.html"], + \["Delayed", "java/util/concurrent/Delayed.html"], + \["DelayQueue", "java/util/concurrent/DelayQueue.html"], + \["Delegate", "org/omg/CORBA/portable/Delegate.html"], + \["Delegate", "org/omg/CORBA_2_3/portable/Delegate.html"], + \["Delegate", "org/omg/PortableServer/portable/Delegate.html"], + \["DelegationPermission", "javax/security/auth/kerberos/DelegationPermission.html"], + \["Deprecated", "java/lang/Deprecated.html"], + \["Deque", "java/util/Deque.html"], + \["Descriptor", "javax/management/Descriptor.html"], + \["DescriptorAccess", "javax/management/DescriptorAccess.html"], + \["DescriptorKey", "javax/management/DescriptorKey.html"], + \["DescriptorRead", "javax/management/DescriptorRead.html"], + \["DescriptorSupport", "javax/management/modelmbean/DescriptorSupport.html"], + \["DESedeKeySpec", "javax/crypto/spec/DESedeKeySpec.html"], + \["DesignMode", "java/beans/DesignMode.html"], + \["DESKeySpec", "javax/crypto/spec/DESKeySpec.html"], + \["Desktop", "java/awt/Desktop.html"], + \["Desktop.Action", "java/awt/Desktop.Action.html"], + \["DesktopIconUI", "javax/swing/plaf/DesktopIconUI.html"], + \["DesktopManager", "javax/swing/DesktopManager.html"], + \["DesktopPaneUI", "javax/swing/plaf/DesktopPaneUI.html"], + \["Destination", "javax/print/attribute/standard/Destination.html"], + \["Destroyable", "javax/security/auth/Destroyable.html"], + \["DestroyFailedException", "javax/security/auth/DestroyFailedException.html"], + \["Detail", "javax/xml/soap/Detail.html"], + \["DetailEntry", "javax/xml/soap/DetailEntry.html"], + \["DGC", "java/rmi/dgc/DGC.html"], + \["DHGenParameterSpec", "javax/crypto/spec/DHGenParameterSpec.html"], + \["DHKey", "javax/crypto/interfaces/DHKey.html"], + \["DHParameterSpec", "javax/crypto/spec/DHParameterSpec.html"], + \["DHPrivateKey", "javax/crypto/interfaces/DHPrivateKey.html"], + \["DHPrivateKeySpec", "javax/crypto/spec/DHPrivateKeySpec.html"], + \["DHPublicKey", "javax/crypto/interfaces/DHPublicKey.html"], + \["DHPublicKeySpec", "javax/crypto/spec/DHPublicKeySpec.html"], + \["Diagnostic", "javax/tools/Diagnostic.html"], + \["Diagnostic.Kind", "javax/tools/Diagnostic.Kind.html"], + \["DiagnosticCollector", "javax/tools/DiagnosticCollector.html"], + \["DiagnosticListener", "javax/tools/DiagnosticListener.html"], + \["Dialog", "java/awt/Dialog.html"], + \["Dialog.ModalExclusionType", "java/awt/Dialog.ModalExclusionType.html"], + \["Dialog.ModalityType", "java/awt/Dialog.ModalityType.html"], + \["Dictionary", "java/util/Dictionary.html"], + \["DigestException", "java/security/DigestException.html"], + \["DigestInputStream", "java/security/DigestInputStream.html"], + \["DigestMethod", "javax/xml/crypto/dsig/DigestMethod.html"], + \["DigestMethodParameterSpec", "javax/xml/crypto/dsig/spec/DigestMethodParameterSpec.html"], + \["DigestOutputStream", "java/security/DigestOutputStream.html"], + \["Dimension", "java/awt/Dimension.html"], + \["Dimension2D", "java/awt/geom/Dimension2D.html"], + \["DimensionUIResource", "javax/swing/plaf/DimensionUIResource.html"], + \["DirContext", "javax/naming/directory/DirContext.html"], + \["DirectColorModel", "java/awt/image/DirectColorModel.html"], + \["DirectoryManager", "javax/naming/spi/DirectoryManager.html"], + \["DirObjectFactory", "javax/naming/spi/DirObjectFactory.html"], + \["DirStateFactory", "javax/naming/spi/DirStateFactory.html"], + \["DirStateFactory.Result", "javax/naming/spi/DirStateFactory.Result.html"], + \["DISCARDING", "org/omg/PortableInterceptor/DISCARDING.html"], + \["Dispatch", "javax/xml/ws/Dispatch.html"], + \["DisplayMode", "java/awt/DisplayMode.html"], + \["DnDConstants", "java/awt/dnd/DnDConstants.html"], + \["Doc", "javax/print/Doc.html"], + \["DocAttribute", "javax/print/attribute/DocAttribute.html"], + \["DocAttributeSet", "javax/print/attribute/DocAttributeSet.html"], + \["DocFlavor", "javax/print/DocFlavor.html"], + \["DocFlavor.BYTE_ARRAY", "javax/print/DocFlavor.BYTE_ARRAY.html"], + \["DocFlavor.CHAR_ARRAY", "javax/print/DocFlavor.CHAR_ARRAY.html"], + \["DocFlavor.INPUT_STREAM", "javax/print/DocFlavor.INPUT_STREAM.html"], + \["DocFlavor.READER", "javax/print/DocFlavor.READER.html"], + \["DocFlavor.SERVICE_FORMATTED", "javax/print/DocFlavor.SERVICE_FORMATTED.html"], + \["DocFlavor.STRING", "javax/print/DocFlavor.STRING.html"], + \["DocFlavor.URL", "javax/print/DocFlavor.URL.html"], + \["DocPrintJob", "javax/print/DocPrintJob.html"], + \["Document", "javax/swing/text/Document.html"], + \["Document", "org/w3c/dom/Document.html"], + \["DocumentBuilder", "javax/xml/parsers/DocumentBuilder.html"], + \["DocumentBuilderFactory", "javax/xml/parsers/DocumentBuilderFactory.html"], + \["Documented", "java/lang/annotation/Documented.html"], + \["DocumentEvent", "javax/swing/event/DocumentEvent.html"], + \["DocumentEvent", "org/w3c/dom/events/DocumentEvent.html"], + \["DocumentEvent.ElementChange", "javax/swing/event/DocumentEvent.ElementChange.html"], + \["DocumentEvent.EventType", "javax/swing/event/DocumentEvent.EventType.html"], + \["DocumentFilter", "javax/swing/text/DocumentFilter.html"], + \["DocumentFilter.FilterBypass", "javax/swing/text/DocumentFilter.FilterBypass.html"], + \["DocumentFragment", "org/w3c/dom/DocumentFragment.html"], + \["DocumentHandler", "org/xml/sax/DocumentHandler.html"], + \["DocumentListener", "javax/swing/event/DocumentListener.html"], + \["DocumentName", "javax/print/attribute/standard/DocumentName.html"], + \["DocumentParser", "javax/swing/text/html/parser/DocumentParser.html"], + \["DocumentType", "org/w3c/dom/DocumentType.html"], + \["DomainCombiner", "java/security/DomainCombiner.html"], + \["DomainManager", "org/omg/CORBA/DomainManager.html"], + \["DomainManagerOperations", "org/omg/CORBA/DomainManagerOperations.html"], + \["DOMConfiguration", "org/w3c/dom/DOMConfiguration.html"], + \["DOMCryptoContext", "javax/xml/crypto/dom/DOMCryptoContext.html"], + \["DOMError", "org/w3c/dom/DOMError.html"], + \["DOMErrorHandler", "org/w3c/dom/DOMErrorHandler.html"], + \["DOMException", "org/w3c/dom/DOMException.html"], + \["DomHandler", "javax/xml/bind/annotation/DomHandler.html"], + \["DOMImplementation", "org/w3c/dom/DOMImplementation.html"], + \["DOMImplementationList", "org/w3c/dom/DOMImplementationList.html"], + \["DOMImplementationLS", "org/w3c/dom/ls/DOMImplementationLS.html"], + \["DOMImplementationRegistry", "org/w3c/dom/bootstrap/DOMImplementationRegistry.html"], + \["DOMImplementationSource", "org/w3c/dom/DOMImplementationSource.html"], + \["DOMLocator", "javax/xml/transform/dom/DOMLocator.html"], + \["DOMLocator", "org/w3c/dom/DOMLocator.html"], + \["DOMResult", "javax/xml/transform/dom/DOMResult.html"], + \["DOMSignContext", "javax/xml/crypto/dsig/dom/DOMSignContext.html"], + \["DOMSource", "javax/xml/transform/dom/DOMSource.html"], + \["DOMStringList", "org/w3c/dom/DOMStringList.html"], + \["DOMStructure", "javax/xml/crypto/dom/DOMStructure.html"], + \["DOMURIReference", "javax/xml/crypto/dom/DOMURIReference.html"], + \["DOMValidateContext", "javax/xml/crypto/dsig/dom/DOMValidateContext.html"], + \["Double", "java/lang/Double.html"], + \["DoubleBuffer", "java/nio/DoubleBuffer.html"], + \["DoubleHolder", "org/omg/CORBA/DoubleHolder.html"], + \["DoubleSeqHelper", "org/omg/CORBA/DoubleSeqHelper.html"], + \["DoubleSeqHolder", "org/omg/CORBA/DoubleSeqHolder.html"], + \["DragGestureEvent", "java/awt/dnd/DragGestureEvent.html"], + \["DragGestureListener", "java/awt/dnd/DragGestureListener.html"], + \["DragGestureRecognizer", "java/awt/dnd/DragGestureRecognizer.html"], + \["DragSource", "java/awt/dnd/DragSource.html"], + \["DragSourceAdapter", "java/awt/dnd/DragSourceAdapter.html"], + \["DragSourceContext", "java/awt/dnd/DragSourceContext.html"], + \["DragSourceDragEvent", "java/awt/dnd/DragSourceDragEvent.html"], + \["DragSourceDropEvent", "java/awt/dnd/DragSourceDropEvent.html"], + \["DragSourceEvent", "java/awt/dnd/DragSourceEvent.html"], + \["DragSourceListener", "java/awt/dnd/DragSourceListener.html"], + \["DragSourceMotionListener", "java/awt/dnd/DragSourceMotionListener.html"], + \["Driver", "java/sql/Driver.html"], + \["DriverManager", "java/sql/DriverManager.html"], + \["DriverPropertyInfo", "java/sql/DriverPropertyInfo.html"], + \["DropMode", "javax/swing/DropMode.html"], + \["DropTarget", "java/awt/dnd/DropTarget.html"], + \["DropTarget.DropTargetAutoScroller", "java/awt/dnd/DropTarget.DropTargetAutoScroller.html"], + \["DropTargetAdapter", "java/awt/dnd/DropTargetAdapter.html"], + \["DropTargetContext", "java/awt/dnd/DropTargetContext.html"], + \["DropTargetDragEvent", "java/awt/dnd/DropTargetDragEvent.html"], + \["DropTargetDropEvent", "java/awt/dnd/DropTargetDropEvent.html"], + \["DropTargetEvent", "java/awt/dnd/DropTargetEvent.html"], + \["DropTargetListener", "java/awt/dnd/DropTargetListener.html"], + \["DSAKey", "java/security/interfaces/DSAKey.html"], + \["DSAKeyPairGenerator", "java/security/interfaces/DSAKeyPairGenerator.html"], + \["DSAParameterSpec", "java/security/spec/DSAParameterSpec.html"], + \["DSAParams", "java/security/interfaces/DSAParams.html"], + \["DSAPrivateKey", "java/security/interfaces/DSAPrivateKey.html"], + \["DSAPrivateKeySpec", "java/security/spec/DSAPrivateKeySpec.html"], + \["DSAPublicKey", "java/security/interfaces/DSAPublicKey.html"], + \["DSAPublicKeySpec", "java/security/spec/DSAPublicKeySpec.html"], + \["DTD", "javax/swing/text/html/parser/DTD.html"], + \["DTD", "javax/xml/stream/events/DTD.html"], + \["DTDConstants", "javax/swing/text/html/parser/DTDConstants.html"], + \["DTDHandler", "org/xml/sax/DTDHandler.html"], + \["DuplicateFormatFlagsException", "java/util/DuplicateFormatFlagsException.html"], + \["DuplicateName", "org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateName.html"], + \["DuplicateNameHelper", "org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.html"], + \["Duration", "javax/xml/datatype/Duration.html"], + \["DynamicImplementation", "org/omg/CORBA/DynamicImplementation.html"], + \["DynamicImplementation", "org/omg/PortableServer/DynamicImplementation.html"], + \["DynamicMBean", "javax/management/DynamicMBean.html"], + \["DynAny", "org/omg/CORBA/DynAny.html"], + \["DynAny", "org/omg/DynamicAny/DynAny.html"], + \["DynAnyFactory", "org/omg/DynamicAny/DynAnyFactory.html"], + \["DynAnyFactoryHelper", "org/omg/DynamicAny/DynAnyFactoryHelper.html"], + \["DynAnyFactoryOperations", "org/omg/DynamicAny/DynAnyFactoryOperations.html"], + \["DynAnyHelper", "org/omg/DynamicAny/DynAnyHelper.html"], + \["DynAnyOperations", "org/omg/DynamicAny/DynAnyOperations.html"], + \["DynAnySeqHelper", "org/omg/DynamicAny/DynAnySeqHelper.html"], + \["DynArray", "org/omg/CORBA/DynArray.html"], + \["DynArray", "org/omg/DynamicAny/DynArray.html"], + \["DynArrayHelper", "org/omg/DynamicAny/DynArrayHelper.html"], + \["DynArrayOperations", "org/omg/DynamicAny/DynArrayOperations.html"], + \["DynEnum", "org/omg/CORBA/DynEnum.html"], + \["DynEnum", "org/omg/DynamicAny/DynEnum.html"], + \["DynEnumHelper", "org/omg/DynamicAny/DynEnumHelper.html"], + \["DynEnumOperations", "org/omg/DynamicAny/DynEnumOperations.html"], + \["DynFixed", "org/omg/CORBA/DynFixed.html"], + \["DynFixed", "org/omg/DynamicAny/DynFixed.html"], + \["DynFixedHelper", "org/omg/DynamicAny/DynFixedHelper.html"], + \["DynFixedOperations", "org/omg/DynamicAny/DynFixedOperations.html"], + \["DynSequence", "org/omg/CORBA/DynSequence.html"], + \["DynSequence", "org/omg/DynamicAny/DynSequence.html"], + \["DynSequenceHelper", "org/omg/DynamicAny/DynSequenceHelper.html"], + \["DynSequenceOperations", "org/omg/DynamicAny/DynSequenceOperations.html"], + \["DynStruct", "org/omg/CORBA/DynStruct.html"], + \["DynStruct", "org/omg/DynamicAny/DynStruct.html"], + \["DynStructHelper", "org/omg/DynamicAny/DynStructHelper.html"], + \["DynStructOperations", "org/omg/DynamicAny/DynStructOperations.html"], + \["DynUnion", "org/omg/CORBA/DynUnion.html"], + \["DynUnion", "org/omg/DynamicAny/DynUnion.html"], + \["DynUnionHelper", "org/omg/DynamicAny/DynUnionHelper.html"], + \["DynUnionOperations", "org/omg/DynamicAny/DynUnionOperations.html"], + \["DynValue", "org/omg/CORBA/DynValue.html"], + \["DynValue", "org/omg/DynamicAny/DynValue.html"], + \["DynValueBox", "org/omg/DynamicAny/DynValueBox.html"], + \["DynValueBoxOperations", "org/omg/DynamicAny/DynValueBoxOperations.html"], + \["DynValueCommon", "org/omg/DynamicAny/DynValueCommon.html"], + \["DynValueCommonOperations", "org/omg/DynamicAny/DynValueCommonOperations.html"], + \["DynValueHelper", "org/omg/DynamicAny/DynValueHelper.html"], + \["DynValueOperations", "org/omg/DynamicAny/DynValueOperations.html"], + \["ECField", "java/security/spec/ECField.html"], + \["ECFieldF2m", "java/security/spec/ECFieldF2m.html"], + \["ECFieldFp", "java/security/spec/ECFieldFp.html"], + \["ECGenParameterSpec", "java/security/spec/ECGenParameterSpec.html"], + \["ECKey", "java/security/interfaces/ECKey.html"], + \["ECParameterSpec", "java/security/spec/ECParameterSpec.html"], + \["ECPoint", "java/security/spec/ECPoint.html"], + \["ECPrivateKey", "java/security/interfaces/ECPrivateKey.html"], + \["ECPrivateKeySpec", "java/security/spec/ECPrivateKeySpec.html"], + \["ECPublicKey", "java/security/interfaces/ECPublicKey.html"], + \["ECPublicKeySpec", "java/security/spec/ECPublicKeySpec.html"], + \["EditorKit", "javax/swing/text/EditorKit.html"], + \["Element", "javax/lang/model/element/Element.html"], + \["Element", "javax/swing/text/Element.html"], + \["Element", "javax/swing/text/html/parser/Element.html"], + \["Element", "javax/xml/bind/Element.html"], + \["Element", "org/w3c/dom/Element.html"], + \["ElementFilter", "javax/lang/model/util/ElementFilter.html"], + \["ElementIterator", "javax/swing/text/ElementIterator.html"], + \["ElementKind", "javax/lang/model/element/ElementKind.html"], + \["ElementKindVisitor6", "javax/lang/model/util/ElementKindVisitor6.html"], + \["Elements", "javax/lang/model/util/Elements.html"], + \["ElementScanner6", "javax/lang/model/util/ElementScanner6.html"], + \["ElementType", "java/lang/annotation/ElementType.html"], + \["ElementVisitor", "javax/lang/model/element/ElementVisitor.html"], + \["Ellipse2D", "java/awt/geom/Ellipse2D.html"], + \["Ellipse2D.Double", "java/awt/geom/Ellipse2D.Double.html"], + \["Ellipse2D.Float", "java/awt/geom/Ellipse2D.Float.html"], + \["EllipticCurve", "java/security/spec/EllipticCurve.html"], + \["EmptyBorder", "javax/swing/border/EmptyBorder.html"], + \["EmptyStackException", "java/util/EmptyStackException.html"], + \["EncodedKeySpec", "java/security/spec/EncodedKeySpec.html"], + \["Encoder", "java/beans/Encoder.html"], + \["Encoding", "org/omg/IOP/Encoding.html"], + \["ENCODING_CDR_ENCAPS", "org/omg/IOP/ENCODING_CDR_ENCAPS.html"], + \["EncryptedPrivateKeyInfo", "javax/crypto/EncryptedPrivateKeyInfo.html"], + \["EndDocument", "javax/xml/stream/events/EndDocument.html"], + \["EndElement", "javax/xml/stream/events/EndElement.html"], + \["Endpoint", "javax/xml/ws/Endpoint.html"], + \["EndpointReference", "javax/xml/ws/EndpointReference.html"], + \["Entity", "javax/swing/text/html/parser/Entity.html"], + \["Entity", "org/w3c/dom/Entity.html"], + \["EntityDeclaration", "javax/xml/stream/events/EntityDeclaration.html"], + \["EntityReference", "javax/xml/stream/events/EntityReference.html"], + \["EntityReference", "org/w3c/dom/EntityReference.html"], + \["EntityResolver", "org/xml/sax/EntityResolver.html"], + \["EntityResolver2", "org/xml/sax/ext/EntityResolver2.html"], + \["Enum", "java/lang/Enum.html"], + \["EnumConstantNotPresentException", "java/lang/EnumConstantNotPresentException.html"], + \["EnumControl", "javax/sound/sampled/EnumControl.html"], + \["EnumControl.Type", "javax/sound/sampled/EnumControl.Type.html"], + \["Enumeration", "java/util/Enumeration.html"], + \["EnumMap", "java/util/EnumMap.html"], + \["EnumSet", "java/util/EnumSet.html"], + \["EnumSyntax", "javax/print/attribute/EnumSyntax.html"], + \["Environment", "org/omg/CORBA/Environment.html"], + \["EOFException", "java/io/EOFException.html"], + \["Error", "java/lang/Error.html"], + \["ErrorHandler", "org/xml/sax/ErrorHandler.html"], + \["ErrorListener", "javax/xml/transform/ErrorListener.html"], + \["ErrorManager", "java/util/logging/ErrorManager.html"], + \["ErrorType", "javax/lang/model/type/ErrorType.html"], + \["EtchedBorder", "javax/swing/border/EtchedBorder.html"], + \["Event", "java/awt/Event.html"], + \["Event", "org/w3c/dom/events/Event.html"], + \["EventContext", "javax/naming/event/EventContext.html"], + \["EventDirContext", "javax/naming/event/EventDirContext.html"], + \["EventException", "org/w3c/dom/events/EventException.html"], + \["EventFilter", "javax/xml/stream/EventFilter.html"], + \["EventHandler", "java/beans/EventHandler.html"], + \["EventListener", "java/util/EventListener.html"], + \["EventListener", "org/w3c/dom/events/EventListener.html"], + \["EventListenerList", "javax/swing/event/EventListenerList.html"], + \["EventListenerProxy", "java/util/EventListenerProxy.html"], + \["EventObject", "java/util/EventObject.html"], + \["EventQueue", "java/awt/EventQueue.html"], + \["EventReaderDelegate", "javax/xml/stream/util/EventReaderDelegate.html"], + \["EventSetDescriptor", "java/beans/EventSetDescriptor.html"], + \["EventTarget", "org/w3c/dom/events/EventTarget.html"], + \["ExcC14NParameterSpec", "javax/xml/crypto/dsig/spec/ExcC14NParameterSpec.html"], + \["Exception", "java/lang/Exception.html"], + \["ExceptionDetailMessage", "org/omg/IOP/ExceptionDetailMessage.html"], + \["ExceptionInInitializerError", "java/lang/ExceptionInInitializerError.html"], + \["ExceptionList", "org/omg/CORBA/ExceptionList.html"], + \["ExceptionListener", "java/beans/ExceptionListener.html"], + \["Exchanger", "java/util/concurrent/Exchanger.html"], + \["ExecutableElement", "javax/lang/model/element/ExecutableElement.html"], + \["ExecutableType", "javax/lang/model/type/ExecutableType.html"], + \["ExecutionException", "java/util/concurrent/ExecutionException.html"], + \["Executor", "java/util/concurrent/Executor.html"], + \["ExecutorCompletionService", "java/util/concurrent/ExecutorCompletionService.html"], + \["Executors", "java/util/concurrent/Executors.html"], + \["ExecutorService", "java/util/concurrent/ExecutorService.html"], + \["ExemptionMechanism", "javax/crypto/ExemptionMechanism.html"], + \["ExemptionMechanismException", "javax/crypto/ExemptionMechanismException.html"], + \["ExemptionMechanismSpi", "javax/crypto/ExemptionMechanismSpi.html"], + \["ExpandVetoException", "javax/swing/tree/ExpandVetoException.html"], + \["ExportException", "java/rmi/server/ExportException.html"], + \["Expression", "java/beans/Expression.html"], + \["ExtendedRequest", "javax/naming/ldap/ExtendedRequest.html"], + \["ExtendedResponse", "javax/naming/ldap/ExtendedResponse.html"], + \["Externalizable", "java/io/Externalizable.html"], + \["FactoryConfigurationError", "javax/xml/parsers/FactoryConfigurationError.html"], + \["FactoryConfigurationError", "javax/xml/stream/FactoryConfigurationError.html"], + \["FailedLoginException", "javax/security/auth/login/FailedLoginException.html"], + \["FaultAction", "javax/xml/ws/FaultAction.html"], + \["FeatureDescriptor", "java/beans/FeatureDescriptor.html"], + \["Fidelity", "javax/print/attribute/standard/Fidelity.html"], + \["Field", "java/lang/reflect/Field.html"], + \["FieldNameHelper", "org/omg/CORBA/FieldNameHelper.html"], + \["FieldNameHelper", "org/omg/DynamicAny/FieldNameHelper.html"], + \["FieldPosition", "java/text/FieldPosition.html"], + \["FieldView", "javax/swing/text/FieldView.html"], + \["File", "java/io/File.html"], + \["FileCacheImageInputStream", "javax/imageio/stream/FileCacheImageInputStream.html"], + \["FileCacheImageOutputStream", "javax/imageio/stream/FileCacheImageOutputStream.html"], + \["FileChannel", "java/nio/channels/FileChannel.html"], + \["FileChannel.MapMode", "java/nio/channels/FileChannel.MapMode.html"], + \["FileChooserUI", "javax/swing/plaf/FileChooserUI.html"], + \["FileDataSource", "javax/activation/FileDataSource.html"], + \["FileDescriptor", "java/io/FileDescriptor.html"], + \["FileDialog", "java/awt/FileDialog.html"], + \["FileFilter", "java/io/FileFilter.html"], + \["FileFilter", "javax/swing/filechooser/FileFilter.html"], + \["FileHandler", "java/util/logging/FileHandler.html"], + \["FileImageInputStream", "javax/imageio/stream/FileImageInputStream.html"], + \["FileImageOutputStream", "javax/imageio/stream/FileImageOutputStream.html"], + \["FileInputStream", "java/io/FileInputStream.html"], + \["FileLock", "java/nio/channels/FileLock.html"], + \["FileLockInterruptionException", "java/nio/channels/FileLockInterruptionException.html"], + \["FileNameExtensionFilter", "javax/swing/filechooser/FileNameExtensionFilter.html"], + \["FilenameFilter", "java/io/FilenameFilter.html"], + \["FileNameMap", "java/net/FileNameMap.html"], + \["FileNotFoundException", "java/io/FileNotFoundException.html"], + \["FileObject", "javax/tools/FileObject.html"], + \["FileOutputStream", "java/io/FileOutputStream.html"], + \["FilePermission", "java/io/FilePermission.html"], + \["Filer", "javax/annotation/processing/Filer.html"], + \["FileReader", "java/io/FileReader.html"], + \["FilerException", "javax/annotation/processing/FilerException.html"], + \["FileSystemView", "javax/swing/filechooser/FileSystemView.html"], + \["FileTypeMap", "javax/activation/FileTypeMap.html"], + \["FileView", "javax/swing/filechooser/FileView.html"], + \["FileWriter", "java/io/FileWriter.html"], + \["Filter", "java/util/logging/Filter.html"], + \["FilteredImageSource", "java/awt/image/FilteredImageSource.html"], + \["FilteredRowSet", "javax/sql/rowset/FilteredRowSet.html"], + \["FilterInputStream", "java/io/FilterInputStream.html"], + \["FilterOutputStream", "java/io/FilterOutputStream.html"], + \["FilterReader", "java/io/FilterReader.html"], + \["FilterWriter", "java/io/FilterWriter.html"], + \["Finishings", "javax/print/attribute/standard/Finishings.html"], + \["FixedHeightLayoutCache", "javax/swing/tree/FixedHeightLayoutCache.html"], + \["FixedHolder", "org/omg/CORBA/FixedHolder.html"], + \["FlatteningPathIterator", "java/awt/geom/FlatteningPathIterator.html"], + \["FlavorEvent", "java/awt/datatransfer/FlavorEvent.html"], + \["FlavorException", "javax/print/FlavorException.html"], + \["FlavorListener", "java/awt/datatransfer/FlavorListener.html"], + \["FlavorMap", "java/awt/datatransfer/FlavorMap.html"], + \["FlavorTable", "java/awt/datatransfer/FlavorTable.html"], + \["Float", "java/lang/Float.html"], + \["FloatBuffer", "java/nio/FloatBuffer.html"], + \["FloatControl", "javax/sound/sampled/FloatControl.html"], + \["FloatControl.Type", "javax/sound/sampled/FloatControl.Type.html"], + \["FloatHolder", "org/omg/CORBA/FloatHolder.html"], + \["FloatSeqHelper", "org/omg/CORBA/FloatSeqHelper.html"], + \["FloatSeqHolder", "org/omg/CORBA/FloatSeqHolder.html"], + \["FlowLayout", "java/awt/FlowLayout.html"], + \["FlowView", "javax/swing/text/FlowView.html"], + \["FlowView.FlowStrategy", "javax/swing/text/FlowView.FlowStrategy.html"], + \["Flushable", "java/io/Flushable.html"], + \["FocusAdapter", "java/awt/event/FocusAdapter.html"], + \["FocusEvent", "java/awt/event/FocusEvent.html"], + \["FocusListener", "java/awt/event/FocusListener.html"], + \["FocusManager", "javax/swing/FocusManager.html"], + \["FocusTraversalPolicy", "java/awt/FocusTraversalPolicy.html"], + \["Font", "java/awt/Font.html"], + \["FontFormatException", "java/awt/FontFormatException.html"], + \["FontMetrics", "java/awt/FontMetrics.html"], + \["FontRenderContext", "java/awt/font/FontRenderContext.html"], + \["FontUIResource", "javax/swing/plaf/FontUIResource.html"], + \["Format", "java/text/Format.html"], + \["Format.Field", "java/text/Format.Field.html"], + \["FormatConversionProvider", "javax/sound/sampled/spi/FormatConversionProvider.html"], + \["FormatFlagsConversionMismatchException", "java/util/FormatFlagsConversionMismatchException.html"], + \["FormatMismatch", "org/omg/IOP/CodecPackage/FormatMismatch.html"], + \["FormatMismatchHelper", "org/omg/IOP/CodecPackage/FormatMismatchHelper.html"], + \["Formattable", "java/util/Formattable.html"], + \["FormattableFlags", "java/util/FormattableFlags.html"], + \["Formatter", "java/util/Formatter.html"], + \["Formatter", "java/util/logging/Formatter.html"], + \["Formatter.BigDecimalLayoutForm", "java/util/Formatter.BigDecimalLayoutForm.html"], + \["FormatterClosedException", "java/util/FormatterClosedException.html"], + \["FormSubmitEvent", "javax/swing/text/html/FormSubmitEvent.html"], + \["FormSubmitEvent.MethodType", "javax/swing/text/html/FormSubmitEvent.MethodType.html"], + \["FormView", "javax/swing/text/html/FormView.html"], + \["ForwardingFileObject", "javax/tools/ForwardingFileObject.html"], + \["ForwardingJavaFileManager", "javax/tools/ForwardingJavaFileManager.html"], + \["ForwardingJavaFileObject", "javax/tools/ForwardingJavaFileObject.html"], + \["ForwardRequest", "org/omg/PortableInterceptor/ForwardRequest.html"], + \["ForwardRequest", "org/omg/PortableServer/ForwardRequest.html"], + \["ForwardRequestHelper", "org/omg/PortableInterceptor/ForwardRequestHelper.html"], + \["ForwardRequestHelper", "org/omg/PortableServer/ForwardRequestHelper.html"], + \["Frame", "java/awt/Frame.html"], + \["FREE_MEM", "org/omg/CORBA/FREE_MEM.html"], + \["Future", "java/util/concurrent/Future.html"], + \["FutureTask", "java/util/concurrent/FutureTask.html"], + \["GapContent", "javax/swing/text/GapContent.html"], + \["GarbageCollectorMXBean", "java/lang/management/GarbageCollectorMXBean.html"], + \["GatheringByteChannel", "java/nio/channels/GatheringByteChannel.html"], + \["GaugeMonitor", "javax/management/monitor/GaugeMonitor.html"], + \["GaugeMonitorMBean", "javax/management/monitor/GaugeMonitorMBean.html"], + \["GeneralPath", "java/awt/geom/GeneralPath.html"], + \["GeneralSecurityException", "java/security/GeneralSecurityException.html"], + \["Generated", "javax/annotation/Generated.html"], + \["GenericArrayType", "java/lang/reflect/GenericArrayType.html"], + \["GenericDeclaration", "java/lang/reflect/GenericDeclaration.html"], + \["GenericSignatureFormatError", "java/lang/reflect/GenericSignatureFormatError.html"], + \["GlyphJustificationInfo", "java/awt/font/GlyphJustificationInfo.html"], + \["GlyphMetrics", "java/awt/font/GlyphMetrics.html"], + \["GlyphVector", "java/awt/font/GlyphVector.html"], + \["GlyphView", "javax/swing/text/GlyphView.html"], + \["GlyphView.GlyphPainter", "javax/swing/text/GlyphView.GlyphPainter.html"], + \["GradientPaint", "java/awt/GradientPaint.html"], + \["GraphicAttribute", "java/awt/font/GraphicAttribute.html"], + \["Graphics", "java/awt/Graphics.html"], + \["Graphics2D", "java/awt/Graphics2D.html"], + \["GraphicsConfigTemplate", "java/awt/GraphicsConfigTemplate.html"], + \["GraphicsConfiguration", "java/awt/GraphicsConfiguration.html"], + \["GraphicsDevice", "java/awt/GraphicsDevice.html"], + \["GraphicsEnvironment", "java/awt/GraphicsEnvironment.html"], + \["GrayFilter", "javax/swing/GrayFilter.html"], + \["GregorianCalendar", "java/util/GregorianCalendar.html"], + \["GridBagConstraints", "java/awt/GridBagConstraints.html"], + \["GridBagLayout", "java/awt/GridBagLayout.html"], + \["GridBagLayoutInfo", "java/awt/GridBagLayoutInfo.html"], + \["GridLayout", "java/awt/GridLayout.html"], + \["Group", "java/security/acl/Group.html"], + \["GroupLayout", "javax/swing/GroupLayout.html"], + \["GroupLayout.Alignment", "javax/swing/GroupLayout.Alignment.html"], + \["GSSContext", "org/ietf/jgss/GSSContext.html"], + \["GSSCredential", "org/ietf/jgss/GSSCredential.html"], + \["GSSException", "org/ietf/jgss/GSSException.html"], + \["GSSManager", "org/ietf/jgss/GSSManager.html"], + \["GSSName", "org/ietf/jgss/GSSName.html"], + \["Guard", "java/security/Guard.html"], + \["GuardedObject", "java/security/GuardedObject.html"], + \["GZIPInputStream", "java/util/zip/GZIPInputStream.html"], + \["GZIPOutputStream", "java/util/zip/GZIPOutputStream.html"], + \["Handler", "java/util/logging/Handler.html"], + \["Handler", "javax/xml/ws/handler/Handler.html"], + \["HandlerBase", "org/xml/sax/HandlerBase.html"], + \["HandlerChain", "javax/jws/HandlerChain.html"], + \["HandlerResolver", "javax/xml/ws/handler/HandlerResolver.html"], + \["HandshakeCompletedEvent", "javax/net/ssl/HandshakeCompletedEvent.html"], + \["HandshakeCompletedListener", "javax/net/ssl/HandshakeCompletedListener.html"], + \["HasControls", "javax/naming/ldap/HasControls.html"], + \["HashAttributeSet", "javax/print/attribute/HashAttributeSet.html"], + \["HashDocAttributeSet", "javax/print/attribute/HashDocAttributeSet.html"], + \["HashMap", "java/util/HashMap.html"], + \["HashPrintJobAttributeSet", "javax/print/attribute/HashPrintJobAttributeSet.html"], + \["HashPrintRequestAttributeSet", "javax/print/attribute/HashPrintRequestAttributeSet.html"], + \["HashPrintServiceAttributeSet", "javax/print/attribute/HashPrintServiceAttributeSet.html"], + \["HashSet", "java/util/HashSet.html"], + \["Hashtable", "java/util/Hashtable.html"], + \["HeadlessException", "java/awt/HeadlessException.html"], + \["HexBinaryAdapter", "javax/xml/bind/annotation/adapters/HexBinaryAdapter.html"], + \["HierarchyBoundsAdapter", "java/awt/event/HierarchyBoundsAdapter.html"], + \["HierarchyBoundsListener", "java/awt/event/HierarchyBoundsListener.html"], + \["HierarchyEvent", "java/awt/event/HierarchyEvent.html"], + \["HierarchyListener", "java/awt/event/HierarchyListener.html"], + \["Highlighter", "javax/swing/text/Highlighter.html"], + \["Highlighter.Highlight", "javax/swing/text/Highlighter.Highlight.html"], + \["Highlighter.HighlightPainter", "javax/swing/text/Highlighter.HighlightPainter.html"], + \["HMACParameterSpec", "javax/xml/crypto/dsig/spec/HMACParameterSpec.html"], + \["Holder", "javax/xml/ws/Holder.html"], + \["HOLDING", "org/omg/PortableInterceptor/HOLDING.html"], + \["HostnameVerifier", "javax/net/ssl/HostnameVerifier.html"], + \["HTML", "javax/swing/text/html/HTML.html"], + \["HTML.Attribute", "javax/swing/text/html/HTML.Attribute.html"], + \["HTML.Tag", "javax/swing/text/html/HTML.Tag.html"], + \["HTML.UnknownTag", "javax/swing/text/html/HTML.UnknownTag.html"], + \["HTMLDocument", "javax/swing/text/html/HTMLDocument.html"], + \["HTMLDocument.Iterator", "javax/swing/text/html/HTMLDocument.Iterator.html"], + \["HTMLEditorKit", "javax/swing/text/html/HTMLEditorKit.html"], + \["HTMLEditorKit.HTMLFactory", "javax/swing/text/html/HTMLEditorKit.HTMLFactory.html"], + \["HTMLEditorKit.HTMLTextAction", "javax/swing/text/html/HTMLEditorKit.HTMLTextAction.html"], + \["HTMLEditorKit.InsertHTMLTextAction", "javax/swing/text/html/HTMLEditorKit.InsertHTMLTextAction.html"], + \["HTMLEditorKit.LinkController", "javax/swing/text/html/HTMLEditorKit.LinkController.html"], + \["HTMLEditorKit.Parser", "javax/swing/text/html/HTMLEditorKit.Parser.html"], + \["HTMLEditorKit.ParserCallback", "javax/swing/text/html/HTMLEditorKit.ParserCallback.html"], + \["HTMLFrameHyperlinkEvent", "javax/swing/text/html/HTMLFrameHyperlinkEvent.html"], + \["HTMLWriter", "javax/swing/text/html/HTMLWriter.html"], + \["HTTPBinding", "javax/xml/ws/http/HTTPBinding.html"], + \["HttpCookie", "java/net/HttpCookie.html"], + \["HTTPException", "javax/xml/ws/http/HTTPException.html"], + \["HttpRetryException", "java/net/HttpRetryException.html"], + \["HttpsURLConnection", "javax/net/ssl/HttpsURLConnection.html"], + \["HttpURLConnection", "java/net/HttpURLConnection.html"], + \["HyperlinkEvent", "javax/swing/event/HyperlinkEvent.html"], + \["HyperlinkEvent.EventType", "javax/swing/event/HyperlinkEvent.EventType.html"], + \["HyperlinkListener", "javax/swing/event/HyperlinkListener.html"], + \["ICC_ColorSpace", "java/awt/color/ICC_ColorSpace.html"], + \["ICC_Profile", "java/awt/color/ICC_Profile.html"], + \["ICC_ProfileGray", "java/awt/color/ICC_ProfileGray.html"], + \["ICC_ProfileRGB", "java/awt/color/ICC_ProfileRGB.html"], + \["Icon", "javax/swing/Icon.html"], + \["IconUIResource", "javax/swing/plaf/IconUIResource.html"], + \["IconView", "javax/swing/text/IconView.html"], + \["ID_ASSIGNMENT_POLICY_ID", "org/omg/PortableServer/ID_ASSIGNMENT_POLICY_ID.html"], + \["ID_UNIQUENESS_POLICY_ID", "org/omg/PortableServer/ID_UNIQUENESS_POLICY_ID.html"], + \["IdAssignmentPolicy", "org/omg/PortableServer/IdAssignmentPolicy.html"], + \["IdAssignmentPolicyOperations", "org/omg/PortableServer/IdAssignmentPolicyOperations.html"], + \["IdAssignmentPolicyValue", "org/omg/PortableServer/IdAssignmentPolicyValue.html"], + \["IdentifierHelper", "org/omg/CORBA/IdentifierHelper.html"], + \["Identity", "java/security/Identity.html"], + \["IdentityHashMap", "java/util/IdentityHashMap.html"], + \["IdentityScope", "java/security/IdentityScope.html"], + \["IDLEntity", "org/omg/CORBA/portable/IDLEntity.html"], + \["IDLType", "org/omg/CORBA/IDLType.html"], + \["IDLTypeHelper", "org/omg/CORBA/IDLTypeHelper.html"], + \["IDLTypeOperations", "org/omg/CORBA/IDLTypeOperations.html"], + \["IDN", "java/net/IDN.html"], + \["IdUniquenessPolicy", "org/omg/PortableServer/IdUniquenessPolicy.html"], + \["IdUniquenessPolicyOperations", "org/omg/PortableServer/IdUniquenessPolicyOperations.html"], + \["IdUniquenessPolicyValue", "org/omg/PortableServer/IdUniquenessPolicyValue.html"], + \["IIOByteBuffer", "javax/imageio/stream/IIOByteBuffer.html"], + \["IIOException", "javax/imageio/IIOException.html"], + \["IIOImage", "javax/imageio/IIOImage.html"], + \["IIOInvalidTreeException", "javax/imageio/metadata/IIOInvalidTreeException.html"], + \["IIOMetadata", "javax/imageio/metadata/IIOMetadata.html"], + \["IIOMetadataController", "javax/imageio/metadata/IIOMetadataController.html"], + \["IIOMetadataFormat", "javax/imageio/metadata/IIOMetadataFormat.html"], + \["IIOMetadataFormatImpl", "javax/imageio/metadata/IIOMetadataFormatImpl.html"], + \["IIOMetadataNode", "javax/imageio/metadata/IIOMetadataNode.html"], + \["IIOParam", "javax/imageio/IIOParam.html"], + \["IIOParamController", "javax/imageio/IIOParamController.html"], + \["IIOReadProgressListener", "javax/imageio/event/IIOReadProgressListener.html"], + \["IIOReadUpdateListener", "javax/imageio/event/IIOReadUpdateListener.html"], + \["IIOReadWarningListener", "javax/imageio/event/IIOReadWarningListener.html"], + \["IIORegistry", "javax/imageio/spi/IIORegistry.html"], + \["IIOServiceProvider", "javax/imageio/spi/IIOServiceProvider.html"], + \["IIOWriteProgressListener", "javax/imageio/event/IIOWriteProgressListener.html"], + \["IIOWriteWarningListener", "javax/imageio/event/IIOWriteWarningListener.html"], + \["IllegalAccessError", "java/lang/IllegalAccessError.html"], + \["IllegalAccessException", "java/lang/IllegalAccessException.html"], + \["IllegalArgumentException", "java/lang/IllegalArgumentException.html"], + \["IllegalBlockingModeException", "java/nio/channels/IllegalBlockingModeException.html"], + \["IllegalBlockSizeException", "javax/crypto/IllegalBlockSizeException.html"], + \["IllegalCharsetNameException", "java/nio/charset/IllegalCharsetNameException.html"], + \["IllegalClassFormatException", "java/lang/instrument/IllegalClassFormatException.html"], + \["IllegalComponentStateException", "java/awt/IllegalComponentStateException.html"], + \["IllegalFormatCodePointException", "java/util/IllegalFormatCodePointException.html"], + \["IllegalFormatConversionException", "java/util/IllegalFormatConversionException.html"], + \["IllegalFormatException", "java/util/IllegalFormatException.html"], + \["IllegalFormatFlagsException", "java/util/IllegalFormatFlagsException.html"], + \["IllegalFormatPrecisionException", "java/util/IllegalFormatPrecisionException.html"], + \["IllegalFormatWidthException", "java/util/IllegalFormatWidthException.html"], + \["IllegalMonitorStateException", "java/lang/IllegalMonitorStateException.html"], + \["IllegalPathStateException", "java/awt/geom/IllegalPathStateException.html"], + \["IllegalSelectorException", "java/nio/channels/IllegalSelectorException.html"], + \["IllegalStateException", "java/lang/IllegalStateException.html"], + \["IllegalThreadStateException", "java/lang/IllegalThreadStateException.html"], + \["Image", "java/awt/Image.html"], + \["ImageCapabilities", "java/awt/ImageCapabilities.html"], + \["ImageConsumer", "java/awt/image/ImageConsumer.html"], + \["ImageFilter", "java/awt/image/ImageFilter.html"], + \["ImageGraphicAttribute", "java/awt/font/ImageGraphicAttribute.html"], + \["ImageIcon", "javax/swing/ImageIcon.html"], + \["ImageInputStream", "javax/imageio/stream/ImageInputStream.html"], + \["ImageInputStreamImpl", "javax/imageio/stream/ImageInputStreamImpl.html"], + \["ImageInputStreamSpi", "javax/imageio/spi/ImageInputStreamSpi.html"], + \["ImageIO", "javax/imageio/ImageIO.html"], + \["ImageObserver", "java/awt/image/ImageObserver.html"], + \["ImageOutputStream", "javax/imageio/stream/ImageOutputStream.html"], + \["ImageOutputStreamImpl", "javax/imageio/stream/ImageOutputStreamImpl.html"], + \["ImageOutputStreamSpi", "javax/imageio/spi/ImageOutputStreamSpi.html"], + \["ImageProducer", "java/awt/image/ImageProducer.html"], + \["ImageReader", "javax/imageio/ImageReader.html"], + \["ImageReaderSpi", "javax/imageio/spi/ImageReaderSpi.html"], + \["ImageReaderWriterSpi", "javax/imageio/spi/ImageReaderWriterSpi.html"], + \["ImageReadParam", "javax/imageio/ImageReadParam.html"], + \["ImageTranscoder", "javax/imageio/ImageTranscoder.html"], + \["ImageTranscoderSpi", "javax/imageio/spi/ImageTranscoderSpi.html"], + \["ImageTypeSpecifier", "javax/imageio/ImageTypeSpecifier.html"], + \["ImageView", "javax/swing/text/html/ImageView.html"], + \["ImageWriteParam", "javax/imageio/ImageWriteParam.html"], + \["ImageWriter", "javax/imageio/ImageWriter.html"], + \["ImageWriterSpi", "javax/imageio/spi/ImageWriterSpi.html"], + \["ImagingOpException", "java/awt/image/ImagingOpException.html"], + \["ImmutableDescriptor", "javax/management/ImmutableDescriptor.html"], + \["IMP_LIMIT", "org/omg/CORBA/IMP_LIMIT.html"], + \["IMPLICIT_ACTIVATION_POLICY_ID", "org/omg/PortableServer/IMPLICIT_ACTIVATION_POLICY_ID.html"], + \["ImplicitActivationPolicy", "org/omg/PortableServer/ImplicitActivationPolicy.html"], + \["ImplicitActivationPolicyOperations", "org/omg/PortableServer/ImplicitActivationPolicyOperations.html"], + \["ImplicitActivationPolicyValue", "org/omg/PortableServer/ImplicitActivationPolicyValue.html"], + \["INACTIVE", "org/omg/PortableInterceptor/INACTIVE.html"], + \["IncompatibleClassChangeError", "java/lang/IncompatibleClassChangeError.html"], + \["IncompleteAnnotationException", "java/lang/annotation/IncompleteAnnotationException.html"], + \["InconsistentTypeCode", "org/omg/CORBA/ORBPackage/InconsistentTypeCode.html"], + \["InconsistentTypeCode", "org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCode.html"], + \["InconsistentTypeCodeHelper", "org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper.html"], + \["IndexColorModel", "java/awt/image/IndexColorModel.html"], + \["IndexedPropertyChangeEvent", "java/beans/IndexedPropertyChangeEvent.html"], + \["IndexedPropertyDescriptor", "java/beans/IndexedPropertyDescriptor.html"], + \["IndexOutOfBoundsException", "java/lang/IndexOutOfBoundsException.html"], + \["IndirectionException", "org/omg/CORBA/portable/IndirectionException.html"], + \["Inet4Address", "java/net/Inet4Address.html"], + \["Inet6Address", "java/net/Inet6Address.html"], + \["InetAddress", "java/net/InetAddress.html"], + \["InetSocketAddress", "java/net/InetSocketAddress.html"], + \["Inflater", "java/util/zip/Inflater.html"], + \["InflaterInputStream", "java/util/zip/InflaterInputStream.html"], + \["InflaterOutputStream", "java/util/zip/InflaterOutputStream.html"], + \["InheritableThreadLocal", "java/lang/InheritableThreadLocal.html"], + \["Inherited", "java/lang/annotation/Inherited.html"], + \["InitialContext", "javax/naming/InitialContext.html"], + \["InitialContextFactory", "javax/naming/spi/InitialContextFactory.html"], + \["InitialContextFactoryBuilder", "javax/naming/spi/InitialContextFactoryBuilder.html"], + \["InitialDirContext", "javax/naming/directory/InitialDirContext.html"], + \["INITIALIZE", "org/omg/CORBA/INITIALIZE.html"], + \["InitialLdapContext", "javax/naming/ldap/InitialLdapContext.html"], + \["InitParam", "javax/jws/soap/InitParam.html"], + \["InlineView", "javax/swing/text/html/InlineView.html"], + \["InputContext", "java/awt/im/InputContext.html"], + \["InputEvent", "java/awt/event/InputEvent.html"], + \["InputMap", "javax/swing/InputMap.html"], + \["InputMapUIResource", "javax/swing/plaf/InputMapUIResource.html"], + \["InputMethod", "java/awt/im/spi/InputMethod.html"], + \["InputMethodContext", "java/awt/im/spi/InputMethodContext.html"], + \["InputMethodDescriptor", "java/awt/im/spi/InputMethodDescriptor.html"], + \["InputMethodEvent", "java/awt/event/InputMethodEvent.html"], + \["InputMethodHighlight", "java/awt/im/InputMethodHighlight.html"], + \["InputMethodListener", "java/awt/event/InputMethodListener.html"], + \["InputMethodRequests", "java/awt/im/InputMethodRequests.html"], + \["InputMismatchException", "java/util/InputMismatchException.html"], + \["InputSource", "org/xml/sax/InputSource.html"], + \["InputStream", "java/io/InputStream.html"], + \["InputStream", "org/omg/CORBA/portable/InputStream.html"], + \["InputStream", "org/omg/CORBA_2_3/portable/InputStream.html"], + \["InputStreamReader", "java/io/InputStreamReader.html"], + \["InputSubset", "java/awt/im/InputSubset.html"], + \["InputVerifier", "javax/swing/InputVerifier.html"], + \["Insets", "java/awt/Insets.html"], + \["InsetsUIResource", "javax/swing/plaf/InsetsUIResource.html"], + \["InstanceAlreadyExistsException", "javax/management/InstanceAlreadyExistsException.html"], + \["InstanceNotFoundException", "javax/management/InstanceNotFoundException.html"], + \["InstantiationError", "java/lang/InstantiationError.html"], + \["InstantiationException", "java/lang/InstantiationException.html"], + \["Instrument", "javax/sound/midi/Instrument.html"], + \["Instrumentation", "java/lang/instrument/Instrumentation.html"], + \["InsufficientResourcesException", "javax/naming/InsufficientResourcesException.html"], + \["IntBuffer", "java/nio/IntBuffer.html"], + \["Integer", "java/lang/Integer.html"], + \["IntegerSyntax", "javax/print/attribute/IntegerSyntax.html"], + \["Interceptor", "org/omg/PortableInterceptor/Interceptor.html"], + \["InterceptorOperations", "org/omg/PortableInterceptor/InterceptorOperations.html"], + \["InterfaceAddress", "java/net/InterfaceAddress.html"], + \["INTERNAL", "org/omg/CORBA/INTERNAL.html"], + \["InternalError", "java/lang/InternalError.html"], + \["InternalFrameAdapter", "javax/swing/event/InternalFrameAdapter.html"], + \["InternalFrameEvent", "javax/swing/event/InternalFrameEvent.html"], + \["InternalFrameFocusTraversalPolicy", "javax/swing/InternalFrameFocusTraversalPolicy.html"], + \["InternalFrameListener", "javax/swing/event/InternalFrameListener.html"], + \["InternalFrameUI", "javax/swing/plaf/InternalFrameUI.html"], + \["InternationalFormatter", "javax/swing/text/InternationalFormatter.html"], + \["InterruptedException", "java/lang/InterruptedException.html"], + \["InterruptedIOException", "java/io/InterruptedIOException.html"], + \["InterruptedNamingException", "javax/naming/InterruptedNamingException.html"], + \["InterruptibleChannel", "java/nio/channels/InterruptibleChannel.html"], + \["INTF_REPOS", "org/omg/CORBA/INTF_REPOS.html"], + \["IntHolder", "org/omg/CORBA/IntHolder.html"], + \["IntrospectionException", "java/beans/IntrospectionException.html"], + \["IntrospectionException", "javax/management/IntrospectionException.html"], + \["Introspector", "java/beans/Introspector.html"], + \["INV_FLAG", "org/omg/CORBA/INV_FLAG.html"], + \["INV_IDENT", "org/omg/CORBA/INV_IDENT.html"], + \["INV_OBJREF", "org/omg/CORBA/INV_OBJREF.html"], + \["INV_POLICY", "org/omg/CORBA/INV_POLICY.html"], + \["Invalid", "org/omg/CORBA/DynAnyPackage/Invalid.html"], + \["INVALID_ACTIVITY", "org/omg/CORBA/INVALID_ACTIVITY.html"], + \["INVALID_TRANSACTION", "org/omg/CORBA/INVALID_TRANSACTION.html"], + \["InvalidActivityException", "javax/activity/InvalidActivityException.html"], + \["InvalidAddress", "org/omg/CosNaming/NamingContextExtPackage/InvalidAddress.html"], + \["InvalidAddressHelper", "org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHelper.html"], + \["InvalidAddressHolder", "org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHolder.html"], + \["InvalidAlgorithmParameterException", "java/security/InvalidAlgorithmParameterException.html"], + \["InvalidApplicationException", "javax/management/InvalidApplicationException.html"], + \["InvalidAttributeIdentifierException", "javax/naming/directory/InvalidAttributeIdentifierException.html"], + \["InvalidAttributesException", "javax/naming/directory/InvalidAttributesException.html"], + \["InvalidAttributeValueException", "javax/management/InvalidAttributeValueException.html"], + \["InvalidAttributeValueException", "javax/naming/directory/InvalidAttributeValueException.html"], + \["InvalidClassException", "java/io/InvalidClassException.html"], + \["InvalidDnDOperationException", "java/awt/dnd/InvalidDnDOperationException.html"], + \["InvalidKeyException", "java/security/InvalidKeyException.html"], + \["InvalidKeyException", "javax/management/openmbean/InvalidKeyException.html"], + \["InvalidKeySpecException", "java/security/spec/InvalidKeySpecException.html"], + \["InvalidMarkException", "java/nio/InvalidMarkException.html"], + \["InvalidMidiDataException", "javax/sound/midi/InvalidMidiDataException.html"], + \["InvalidName", "org/omg/CORBA/ORBPackage/InvalidName.html"], + \["InvalidName", "org/omg/CosNaming/NamingContextPackage/InvalidName.html"], + \["InvalidName", "org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidName.html"], + \["InvalidNameException", "javax/naming/InvalidNameException.html"], + \["InvalidNameHelper", "org/omg/CosNaming/NamingContextPackage/InvalidNameHelper.html"], + \["InvalidNameHelper", "org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.html"], + \["InvalidNameHolder", "org/omg/CosNaming/NamingContextPackage/InvalidNameHolder.html"], + \["InvalidObjectException", "java/io/InvalidObjectException.html"], + \["InvalidOpenTypeException", "javax/management/openmbean/InvalidOpenTypeException.html"], + \["InvalidParameterException", "java/security/InvalidParameterException.html"], + \["InvalidParameterSpecException", "java/security/spec/InvalidParameterSpecException.html"], + \["InvalidPolicy", "org/omg/PortableServer/POAPackage/InvalidPolicy.html"], + \["InvalidPolicyHelper", "org/omg/PortableServer/POAPackage/InvalidPolicyHelper.html"], + \["InvalidPreferencesFormatException", "java/util/prefs/InvalidPreferencesFormatException.html"], + \["InvalidPropertiesFormatException", "java/util/InvalidPropertiesFormatException.html"], + \["InvalidRelationIdException", "javax/management/relation/InvalidRelationIdException.html"], + \["InvalidRelationServiceException", "javax/management/relation/InvalidRelationServiceException.html"], + \["InvalidRelationTypeException", "javax/management/relation/InvalidRelationTypeException.html"], + \["InvalidRoleInfoException", "javax/management/relation/InvalidRoleInfoException.html"], + \["InvalidRoleValueException", "javax/management/relation/InvalidRoleValueException.html"], + \["InvalidSearchControlsException", "javax/naming/directory/InvalidSearchControlsException.html"], + \["InvalidSearchFilterException", "javax/naming/directory/InvalidSearchFilterException.html"], + \["InvalidSeq", "org/omg/CORBA/DynAnyPackage/InvalidSeq.html"], + \["InvalidSlot", "org/omg/PortableInterceptor/InvalidSlot.html"], + \["InvalidSlotHelper", "org/omg/PortableInterceptor/InvalidSlotHelper.html"], + \["InvalidTargetObjectTypeException", "javax/management/modelmbean/InvalidTargetObjectTypeException.html"], + \["InvalidTransactionException", "javax/transaction/InvalidTransactionException.html"], + \["InvalidTypeForEncoding", "org/omg/IOP/CodecPackage/InvalidTypeForEncoding.html"], + \["InvalidTypeForEncodingHelper", "org/omg/IOP/CodecPackage/InvalidTypeForEncodingHelper.html"], + \["InvalidValue", "org/omg/CORBA/DynAnyPackage/InvalidValue.html"], + \["InvalidValue", "org/omg/DynamicAny/DynAnyPackage/InvalidValue.html"], + \["InvalidValueHelper", "org/omg/DynamicAny/DynAnyPackage/InvalidValueHelper.html"], + \["Invocable", "javax/script/Invocable.html"], + \["InvocationEvent", "java/awt/event/InvocationEvent.html"], + \["InvocationHandler", "java/lang/reflect/InvocationHandler.html"], + \["InvocationTargetException", "java/lang/reflect/InvocationTargetException.html"], + \["InvokeHandler", "org/omg/CORBA/portable/InvokeHandler.html"], + \["IOError", "java/io/IOError.html"], + \["IOException", "java/io/IOException.html"], + \["IOR", "org/omg/IOP/IOR.html"], + \["IORHelper", "org/omg/IOP/IORHelper.html"], + \["IORHolder", "org/omg/IOP/IORHolder.html"], + \["IORInfo", "org/omg/PortableInterceptor/IORInfo.html"], + \["IORInfoOperations", "org/omg/PortableInterceptor/IORInfoOperations.html"], + \["IORInterceptor", "org/omg/PortableInterceptor/IORInterceptor.html"], + \["IORInterceptor_3_0", "org/omg/PortableInterceptor/IORInterceptor_3_0.html"], + \["IORInterceptor_3_0Helper", "org/omg/PortableInterceptor/IORInterceptor_3_0Helper.html"], + \["IORInterceptor_3_0Holder", "org/omg/PortableInterceptor/IORInterceptor_3_0Holder.html"], + \["IORInterceptor_3_0Operations", "org/omg/PortableInterceptor/IORInterceptor_3_0Operations.html"], + \["IORInterceptorOperations", "org/omg/PortableInterceptor/IORInterceptorOperations.html"], + \["IRObject", "org/omg/CORBA/IRObject.html"], + \["IRObjectOperations", "org/omg/CORBA/IRObjectOperations.html"], + \["IstringHelper", "org/omg/CosNaming/IstringHelper.html"], + \["ItemEvent", "java/awt/event/ItemEvent.html"], + \["ItemListener", "java/awt/event/ItemListener.html"], + \["ItemSelectable", "java/awt/ItemSelectable.html"], + \["Iterable", "java/lang/Iterable.html"], + \["Iterator", "java/util/Iterator.html"], + \["IvParameterSpec", "javax/crypto/spec/IvParameterSpec.html"], + \["JApplet", "javax/swing/JApplet.html"], + \["JarEntry", "java/util/jar/JarEntry.html"], + \["JarException", "java/util/jar/JarException.html"], + \["JarFile", "java/util/jar/JarFile.html"], + \["JarInputStream", "java/util/jar/JarInputStream.html"], + \["JarOutputStream", "java/util/jar/JarOutputStream.html"], + \["JarURLConnection", "java/net/JarURLConnection.html"], + \["JavaCompiler", "javax/tools/JavaCompiler.html"], + \["JavaCompiler.CompilationTask", "javax/tools/JavaCompiler.CompilationTask.html"], + \["JavaFileManager", "javax/tools/JavaFileManager.html"], + \["JavaFileManager.Location", "javax/tools/JavaFileManager.Location.html"], + \["JavaFileObject", "javax/tools/JavaFileObject.html"], + \["JavaFileObject.Kind", "javax/tools/JavaFileObject.Kind.html"], + \["JAXB", "javax/xml/bind/JAXB.html"], + \["JAXBContext", "javax/xml/bind/JAXBContext.html"], + \["JAXBElement", "javax/xml/bind/JAXBElement.html"], + \["JAXBElement.GlobalScope", "javax/xml/bind/JAXBElement.GlobalScope.html"], + \["JAXBException", "javax/xml/bind/JAXBException.html"], + \["JAXBIntrospector", "javax/xml/bind/JAXBIntrospector.html"], + \["JAXBResult", "javax/xml/bind/util/JAXBResult.html"], + \["JAXBSource", "javax/xml/bind/util/JAXBSource.html"], + \["JButton", "javax/swing/JButton.html"], + \["JCheckBox", "javax/swing/JCheckBox.html"], + \["JCheckBoxMenuItem", "javax/swing/JCheckBoxMenuItem.html"], + \["JColorChooser", "javax/swing/JColorChooser.html"], + \["JComboBox", "javax/swing/JComboBox.html"], + \["JComboBox.KeySelectionManager", "javax/swing/JComboBox.KeySelectionManager.html"], + \["JComponent", "javax/swing/JComponent.html"], + \["JdbcRowSet", "javax/sql/rowset/JdbcRowSet.html"], + \["JDesktopPane", "javax/swing/JDesktopPane.html"], + \["JDialog", "javax/swing/JDialog.html"], + \["JEditorPane", "javax/swing/JEditorPane.html"], + \["JFileChooser", "javax/swing/JFileChooser.html"], + \["JFormattedTextField", "javax/swing/JFormattedTextField.html"], + \["JFormattedTextField.AbstractFormatter", "javax/swing/JFormattedTextField.AbstractFormatter.html"], + \["JFormattedTextField.AbstractFormatterFactory", "javax/swing/JFormattedTextField.AbstractFormatterFactory.html"], + \["JFrame", "javax/swing/JFrame.html"], + \["JInternalFrame", "javax/swing/JInternalFrame.html"], + \["JInternalFrame.JDesktopIcon", "javax/swing/JInternalFrame.JDesktopIcon.html"], + \["JLabel", "javax/swing/JLabel.html"], + \["JLayeredPane", "javax/swing/JLayeredPane.html"], + \["JList", "javax/swing/JList.html"], + \["JList.DropLocation", "javax/swing/JList.DropLocation.html"], + \["JMenu", "javax/swing/JMenu.html"], + \["JMenuBar", "javax/swing/JMenuBar.html"], + \["JMenuItem", "javax/swing/JMenuItem.html"], + \["JMException", "javax/management/JMException.html"], + \["JMRuntimeException", "javax/management/JMRuntimeException.html"], + \["JMX", "javax/management/JMX.html"], + \["JMXAddressable", "javax/management/remote/JMXAddressable.html"], + \["JMXAuthenticator", "javax/management/remote/JMXAuthenticator.html"], + \["JMXConnectionNotification", "javax/management/remote/JMXConnectionNotification.html"], + \["JMXConnector", "javax/management/remote/JMXConnector.html"], + \["JMXConnectorFactory", "javax/management/remote/JMXConnectorFactory.html"], + \["JMXConnectorProvider", "javax/management/remote/JMXConnectorProvider.html"], + \["JMXConnectorServer", "javax/management/remote/JMXConnectorServer.html"], + \["JMXConnectorServerFactory", "javax/management/remote/JMXConnectorServerFactory.html"], + \["JMXConnectorServerMBean", "javax/management/remote/JMXConnectorServerMBean.html"], + \["JMXConnectorServerProvider", "javax/management/remote/JMXConnectorServerProvider.html"], + \["JMXPrincipal", "javax/management/remote/JMXPrincipal.html"], + \["JMXProviderException", "javax/management/remote/JMXProviderException.html"], + \["JMXServerErrorException", "javax/management/remote/JMXServerErrorException.html"], + \["JMXServiceURL", "javax/management/remote/JMXServiceURL.html"], + \["JobAttributes", "java/awt/JobAttributes.html"], + \["JobAttributes.DefaultSelectionType", "java/awt/JobAttributes.DefaultSelectionType.html"], + \["JobAttributes.DestinationType", "java/awt/JobAttributes.DestinationType.html"], + \["JobAttributes.DialogType", "java/awt/JobAttributes.DialogType.html"], + \["JobAttributes.MultipleDocumentHandlingType", "java/awt/JobAttributes.MultipleDocumentHandlingType.html"], + \["JobAttributes.SidesType", "java/awt/JobAttributes.SidesType.html"], + \["JobHoldUntil", "javax/print/attribute/standard/JobHoldUntil.html"], + \["JobImpressions", "javax/print/attribute/standard/JobImpressions.html"], + \["JobImpressionsCompleted", "javax/print/attribute/standard/JobImpressionsCompleted.html"], + \["JobImpressionsSupported", "javax/print/attribute/standard/JobImpressionsSupported.html"], + \["JobKOctets", "javax/print/attribute/standard/JobKOctets.html"], + \["JobKOctetsProcessed", "javax/print/attribute/standard/JobKOctetsProcessed.html"], + \["JobKOctetsSupported", "javax/print/attribute/standard/JobKOctetsSupported.html"], + \["JobMediaSheets", "javax/print/attribute/standard/JobMediaSheets.html"], + \["JobMediaSheetsCompleted", "javax/print/attribute/standard/JobMediaSheetsCompleted.html"], + \["JobMediaSheetsSupported", "javax/print/attribute/standard/JobMediaSheetsSupported.html"], + \["JobMessageFromOperator", "javax/print/attribute/standard/JobMessageFromOperator.html"], + \["JobName", "javax/print/attribute/standard/JobName.html"], + \["JobOriginatingUserName", "javax/print/attribute/standard/JobOriginatingUserName.html"], + \["JobPriority", "javax/print/attribute/standard/JobPriority.html"], + \["JobPrioritySupported", "javax/print/attribute/standard/JobPrioritySupported.html"], + \["JobSheets", "javax/print/attribute/standard/JobSheets.html"], + \["JobState", "javax/print/attribute/standard/JobState.html"], + \["JobStateReason", "javax/print/attribute/standard/JobStateReason.html"], + \["JobStateReasons", "javax/print/attribute/standard/JobStateReasons.html"], + \["Joinable", "javax/sql/rowset/Joinable.html"], + \["JoinRowSet", "javax/sql/rowset/JoinRowSet.html"], + \["JOptionPane", "javax/swing/JOptionPane.html"], + \["JPanel", "javax/swing/JPanel.html"], + \["JPasswordField", "javax/swing/JPasswordField.html"], + \["JPEGHuffmanTable", "javax/imageio/plugins/jpeg/JPEGHuffmanTable.html"], + \["JPEGImageReadParam", "javax/imageio/plugins/jpeg/JPEGImageReadParam.html"], + \["JPEGImageWriteParam", "javax/imageio/plugins/jpeg/JPEGImageWriteParam.html"], + \["JPEGQTable", "javax/imageio/plugins/jpeg/JPEGQTable.html"], + \["JPopupMenu", "javax/swing/JPopupMenu.html"], + \["JPopupMenu.Separator", "javax/swing/JPopupMenu.Separator.html"], + \["JProgressBar", "javax/swing/JProgressBar.html"], + \["JRadioButton", "javax/swing/JRadioButton.html"], + \["JRadioButtonMenuItem", "javax/swing/JRadioButtonMenuItem.html"], + \["JRootPane", "javax/swing/JRootPane.html"], + \["JScrollBar", "javax/swing/JScrollBar.html"], + \["JScrollPane", "javax/swing/JScrollPane.html"], + \["JSeparator", "javax/swing/JSeparator.html"], + \["JSlider", "javax/swing/JSlider.html"], + \["JSpinner", "javax/swing/JSpinner.html"], + \["JSpinner.DateEditor", "javax/swing/JSpinner.DateEditor.html"], + \["JSpinner.DefaultEditor", "javax/swing/JSpinner.DefaultEditor.html"], + \["JSpinner.ListEditor", "javax/swing/JSpinner.ListEditor.html"], + \["JSpinner.NumberEditor", "javax/swing/JSpinner.NumberEditor.html"], + \["JSplitPane", "javax/swing/JSplitPane.html"], + \["JTabbedPane", "javax/swing/JTabbedPane.html"], + \["JTable", "javax/swing/JTable.html"], + \["JTable.DropLocation", "javax/swing/JTable.DropLocation.html"], + \["JTable.PrintMode", "javax/swing/JTable.PrintMode.html"], + \["JTableHeader", "javax/swing/table/JTableHeader.html"], + \["JTextArea", "javax/swing/JTextArea.html"], + \["JTextComponent", "javax/swing/text/JTextComponent.html"], + \["JTextComponent.DropLocation", "javax/swing/text/JTextComponent.DropLocation.html"], + \["JTextComponent.KeyBinding", "javax/swing/text/JTextComponent.KeyBinding.html"], + \["JTextField", "javax/swing/JTextField.html"], + \["JTextPane", "javax/swing/JTextPane.html"], + \["JToggleButton", "javax/swing/JToggleButton.html"], + \["JToggleButton.ToggleButtonModel", "javax/swing/JToggleButton.ToggleButtonModel.html"], + \["JToolBar", "javax/swing/JToolBar.html"], + \["JToolBar.Separator", "javax/swing/JToolBar.Separator.html"], + \["JToolTip", "javax/swing/JToolTip.html"], + \["JTree", "javax/swing/JTree.html"], + \["JTree.DropLocation", "javax/swing/JTree.DropLocation.html"], + \["JTree.DynamicUtilTreeNode", "javax/swing/JTree.DynamicUtilTreeNode.html"], + \["JTree.EmptySelectionModel", "javax/swing/JTree.EmptySelectionModel.html"], + \["JViewport", "javax/swing/JViewport.html"], + \["JWindow", "javax/swing/JWindow.html"], + \["KerberosKey", "javax/security/auth/kerberos/KerberosKey.html"], + \["KerberosPrincipal", "javax/security/auth/kerberos/KerberosPrincipal.html"], + \["KerberosTicket", "javax/security/auth/kerberos/KerberosTicket.html"], + \["Kernel", "java/awt/image/Kernel.html"], + \["Key", "java/security/Key.html"], + \["KeyAdapter", "java/awt/event/KeyAdapter.html"], + \["KeyAgreement", "javax/crypto/KeyAgreement.html"], + \["KeyAgreementSpi", "javax/crypto/KeyAgreementSpi.html"], + \["KeyAlreadyExistsException", "javax/management/openmbean/KeyAlreadyExistsException.html"], + \["KeyboardFocusManager", "java/awt/KeyboardFocusManager.html"], + \["KeyEvent", "java/awt/event/KeyEvent.html"], + \["KeyEventDispatcher", "java/awt/KeyEventDispatcher.html"], + \["KeyEventPostProcessor", "java/awt/KeyEventPostProcessor.html"], + \["KeyException", "java/security/KeyException.html"], + \["KeyFactory", "java/security/KeyFactory.html"], + \["KeyFactorySpi", "java/security/KeyFactorySpi.html"], + \["KeyGenerator", "javax/crypto/KeyGenerator.html"], + \["KeyGeneratorSpi", "javax/crypto/KeyGeneratorSpi.html"], + \["KeyInfo", "javax/xml/crypto/dsig/keyinfo/KeyInfo.html"], + \["KeyInfoFactory", "javax/xml/crypto/dsig/keyinfo/KeyInfoFactory.html"], + \["KeyListener", "java/awt/event/KeyListener.html"], + \["KeyManagementException", "java/security/KeyManagementException.html"], + \["KeyManager", "javax/net/ssl/KeyManager.html"], + \["KeyManagerFactory", "javax/net/ssl/KeyManagerFactory.html"], + \["KeyManagerFactorySpi", "javax/net/ssl/KeyManagerFactorySpi.html"], + \["Keymap", "javax/swing/text/Keymap.html"], + \["KeyName", "javax/xml/crypto/dsig/keyinfo/KeyName.html"], + \["KeyPair", "java/security/KeyPair.html"], + \["KeyPairGenerator", "java/security/KeyPairGenerator.html"], + \["KeyPairGeneratorSpi", "java/security/KeyPairGeneratorSpi.html"], + \["KeyRep", "java/security/KeyRep.html"], + \["KeyRep.Type", "java/security/KeyRep.Type.html"], + \["KeySelector", "javax/xml/crypto/KeySelector.html"], + \["KeySelector.Purpose", "javax/xml/crypto/KeySelector.Purpose.html"], + \["KeySelectorException", "javax/xml/crypto/KeySelectorException.html"], + \["KeySelectorResult", "javax/xml/crypto/KeySelectorResult.html"], + \["KeySpec", "java/security/spec/KeySpec.html"], + \["KeyStore", "java/security/KeyStore.html"], + \["KeyStore.Builder", "java/security/KeyStore.Builder.html"], + \["KeyStore.CallbackHandlerProtection", "java/security/KeyStore.CallbackHandlerProtection.html"], + \["KeyStore.Entry", "java/security/KeyStore.Entry.html"], + \["KeyStore.LoadStoreParameter", "java/security/KeyStore.LoadStoreParameter.html"], + \["KeyStore.PasswordProtection", "java/security/KeyStore.PasswordProtection.html"], + \["KeyStore.PrivateKeyEntry", "java/security/KeyStore.PrivateKeyEntry.html"], + \["KeyStore.ProtectionParameter", "java/security/KeyStore.ProtectionParameter.html"], + \["KeyStore.SecretKeyEntry", "java/security/KeyStore.SecretKeyEntry.html"], + \["KeyStore.TrustedCertificateEntry", "java/security/KeyStore.TrustedCertificateEntry.html"], + \["KeyStoreBuilderParameters", "javax/net/ssl/KeyStoreBuilderParameters.html"], + \["KeyStoreException", "java/security/KeyStoreException.html"], + \["KeyStoreSpi", "java/security/KeyStoreSpi.html"], + \["KeyStroke", "javax/swing/KeyStroke.html"], + \["KeyValue", "javax/xml/crypto/dsig/keyinfo/KeyValue.html"], + \["Label", "java/awt/Label.html"], + \["LabelUI", "javax/swing/plaf/LabelUI.html"], + \["LabelView", "javax/swing/text/LabelView.html"], + \["LanguageCallback", "javax/security/auth/callback/LanguageCallback.html"], + \["LastOwnerException", "java/security/acl/LastOwnerException.html"], + \["LayeredHighlighter", "javax/swing/text/LayeredHighlighter.html"], + \["LayeredHighlighter.LayerPainter", "javax/swing/text/LayeredHighlighter.LayerPainter.html"], + \["LayoutFocusTraversalPolicy", "javax/swing/LayoutFocusTraversalPolicy.html"], + \["LayoutManager", "java/awt/LayoutManager.html"], + \["LayoutManager2", "java/awt/LayoutManager2.html"], + \["LayoutPath", "java/awt/font/LayoutPath.html"], + \["LayoutQueue", "javax/swing/text/LayoutQueue.html"], + \["LayoutStyle", "javax/swing/LayoutStyle.html"], + \["LayoutStyle.ComponentPlacement", "javax/swing/LayoutStyle.ComponentPlacement.html"], + \["LDAPCertStoreParameters", "java/security/cert/LDAPCertStoreParameters.html"], + \["LdapContext", "javax/naming/ldap/LdapContext.html"], + \["LdapName", "javax/naming/ldap/LdapName.html"], + \["LdapReferralException", "javax/naming/ldap/LdapReferralException.html"], + \["Lease", "java/rmi/dgc/Lease.html"], + \["Level", "java/util/logging/Level.html"], + \["LexicalHandler", "org/xml/sax/ext/LexicalHandler.html"], + \["LIFESPAN_POLICY_ID", "org/omg/PortableServer/LIFESPAN_POLICY_ID.html"], + \["LifespanPolicy", "org/omg/PortableServer/LifespanPolicy.html"], + \["LifespanPolicyOperations", "org/omg/PortableServer/LifespanPolicyOperations.html"], + \["LifespanPolicyValue", "org/omg/PortableServer/LifespanPolicyValue.html"], + \["LimitExceededException", "javax/naming/LimitExceededException.html"], + \["Line", "javax/sound/sampled/Line.html"], + \["Line.Info", "javax/sound/sampled/Line.Info.html"], + \["Line2D", "java/awt/geom/Line2D.html"], + \["Line2D.Double", "java/awt/geom/Line2D.Double.html"], + \["Line2D.Float", "java/awt/geom/Line2D.Float.html"], + \["LinearGradientPaint", "java/awt/LinearGradientPaint.html"], + \["LineBorder", "javax/swing/border/LineBorder.html"], + \["LineBreakMeasurer", "java/awt/font/LineBreakMeasurer.html"], + \["LineEvent", "javax/sound/sampled/LineEvent.html"], + \["LineEvent.Type", "javax/sound/sampled/LineEvent.Type.html"], + \["LineListener", "javax/sound/sampled/LineListener.html"], + \["LineMetrics", "java/awt/font/LineMetrics.html"], + \["LineNumberInputStream", "java/io/LineNumberInputStream.html"], + \["LineNumberReader", "java/io/LineNumberReader.html"], + \["LineUnavailableException", "javax/sound/sampled/LineUnavailableException.html"], + \["LinkageError", "java/lang/LinkageError.html"], + \["LinkedBlockingDeque", "java/util/concurrent/LinkedBlockingDeque.html"], + \["LinkedBlockingQueue", "java/util/concurrent/LinkedBlockingQueue.html"], + \["LinkedHashMap", "java/util/LinkedHashMap.html"], + \["LinkedHashSet", "java/util/LinkedHashSet.html"], + \["LinkedList", "java/util/LinkedList.html"], + \["LinkException", "javax/naming/LinkException.html"], + \["LinkLoopException", "javax/naming/LinkLoopException.html"], + \["LinkRef", "javax/naming/LinkRef.html"], + \["List", "java/awt/List.html"], + \["List", "java/util/List.html"], + \["ListCellRenderer", "javax/swing/ListCellRenderer.html"], + \["ListDataEvent", "javax/swing/event/ListDataEvent.html"], + \["ListDataListener", "javax/swing/event/ListDataListener.html"], + \["ListenerNotFoundException", "javax/management/ListenerNotFoundException.html"], + \["ListIterator", "java/util/ListIterator.html"], + \["ListModel", "javax/swing/ListModel.html"], + \["ListResourceBundle", "java/util/ListResourceBundle.html"], + \["ListSelectionEvent", "javax/swing/event/ListSelectionEvent.html"], + \["ListSelectionListener", "javax/swing/event/ListSelectionListener.html"], + \["ListSelectionModel", "javax/swing/ListSelectionModel.html"], + \["ListUI", "javax/swing/plaf/ListUI.html"], + \["ListView", "javax/swing/text/html/ListView.html"], + \["LoaderHandler", "java/rmi/server/LoaderHandler.html"], + \["Locale", "java/util/Locale.html"], + \["LocaleNameProvider", "java/util/spi/LocaleNameProvider.html"], + \["LocaleServiceProvider", "java/util/spi/LocaleServiceProvider.html"], + \["LocalObject", "org/omg/CORBA/LocalObject.html"], + \["LocateRegistry", "java/rmi/registry/LocateRegistry.html"], + \["Location", "javax/xml/stream/Location.html"], + \["LOCATION_FORWARD", "org/omg/PortableInterceptor/LOCATION_FORWARD.html"], + \["Locator", "org/xml/sax/Locator.html"], + \["Locator2", "org/xml/sax/ext/Locator2.html"], + \["Locator2Impl", "org/xml/sax/ext/Locator2Impl.html"], + \["LocatorImpl", "org/xml/sax/helpers/LocatorImpl.html"], + \["Lock", "java/util/concurrent/locks/Lock.html"], + \["LockInfo", "java/lang/management/LockInfo.html"], + \["LockSupport", "java/util/concurrent/locks/LockSupport.html"], + \["Logger", "java/util/logging/Logger.html"], + \["LoggingMXBean", "java/util/logging/LoggingMXBean.html"], + \["LoggingPermission", "java/util/logging/LoggingPermission.html"], + \["LogicalHandler", "javax/xml/ws/handler/LogicalHandler.html"], + \["LogicalMessage", "javax/xml/ws/LogicalMessage.html"], + \["LogicalMessageContext", "javax/xml/ws/handler/LogicalMessageContext.html"], + \["LoginContext", "javax/security/auth/login/LoginContext.html"], + \["LoginException", "javax/security/auth/login/LoginException.html"], + \["LoginModule", "javax/security/auth/spi/LoginModule.html"], + \["LogManager", "java/util/logging/LogManager.html"], + \["LogRecord", "java/util/logging/LogRecord.html"], + \["LogStream", "java/rmi/server/LogStream.html"], + \["Long", "java/lang/Long.html"], + \["LongBuffer", "java/nio/LongBuffer.html"], + \["LongHolder", "org/omg/CORBA/LongHolder.html"], + \["LongLongSeqHelper", "org/omg/CORBA/LongLongSeqHelper.html"], + \["LongLongSeqHolder", "org/omg/CORBA/LongLongSeqHolder.html"], + \["LongSeqHelper", "org/omg/CORBA/LongSeqHelper.html"], + \["LongSeqHolder", "org/omg/CORBA/LongSeqHolder.html"], + \["LookAndFeel", "javax/swing/LookAndFeel.html"], + \["LookupOp", "java/awt/image/LookupOp.html"], + \["LookupTable", "java/awt/image/LookupTable.html"], + \["LSException", "org/w3c/dom/ls/LSException.html"], + \["LSInput", "org/w3c/dom/ls/LSInput.html"], + \["LSLoadEvent", "org/w3c/dom/ls/LSLoadEvent.html"], + \["LSOutput", "org/w3c/dom/ls/LSOutput.html"], + \["LSParser", "org/w3c/dom/ls/LSParser.html"], + \["LSParserFilter", "org/w3c/dom/ls/LSParserFilter.html"], + \["LSProgressEvent", "org/w3c/dom/ls/LSProgressEvent.html"], + \["LSResourceResolver", "org/w3c/dom/ls/LSResourceResolver.html"], + \["LSSerializer", "org/w3c/dom/ls/LSSerializer.html"], + \["LSSerializerFilter", "org/w3c/dom/ls/LSSerializerFilter.html"], + \["Mac", "javax/crypto/Mac.html"], + \["MacSpi", "javax/crypto/MacSpi.html"], + \["MailcapCommandMap", "javax/activation/MailcapCommandMap.html"], + \["MalformedInputException", "java/nio/charset/MalformedInputException.html"], + \["MalformedLinkException", "javax/naming/MalformedLinkException.html"], + \["MalformedObjectNameException", "javax/management/MalformedObjectNameException.html"], + \["MalformedParameterizedTypeException", "java/lang/reflect/MalformedParameterizedTypeException.html"], + \["MalformedURLException", "java/net/MalformedURLException.html"], + \["ManagementFactory", "java/lang/management/ManagementFactory.html"], + \["ManagementPermission", "java/lang/management/ManagementPermission.html"], + \["ManageReferralControl", "javax/naming/ldap/ManageReferralControl.html"], + \["ManagerFactoryParameters", "javax/net/ssl/ManagerFactoryParameters.html"], + \["Manifest", "java/util/jar/Manifest.html"], + \["Manifest", "javax/xml/crypto/dsig/Manifest.html"], + \["Map", "java/util/Map.html"], + \["Map.Entry", "java/util/Map.Entry.html"], + \["MappedByteBuffer", "java/nio/MappedByteBuffer.html"], + \["MARSHAL", "org/omg/CORBA/MARSHAL.html"], + \["MarshalException", "java/rmi/MarshalException.html"], + \["MarshalException", "javax/xml/bind/MarshalException.html"], + \["MarshalException", "javax/xml/crypto/MarshalException.html"], + \["MarshalledObject", "java/rmi/MarshalledObject.html"], + \["Marshaller", "javax/xml/bind/Marshaller.html"], + \["Marshaller.Listener", "javax/xml/bind/Marshaller.Listener.html"], + \["MaskFormatter", "javax/swing/text/MaskFormatter.html"], + \["Matcher", "java/util/regex/Matcher.html"], + \["MatchResult", "java/util/regex/MatchResult.html"], + \["Math", "java/lang/Math.html"], + \["MathContext", "java/math/MathContext.html"], + \["MatteBorder", "javax/swing/border/MatteBorder.html"], + \["MBeanAttributeInfo", "javax/management/MBeanAttributeInfo.html"], + \["MBeanConstructorInfo", "javax/management/MBeanConstructorInfo.html"], + \["MBeanException", "javax/management/MBeanException.html"], + \["MBeanFeatureInfo", "javax/management/MBeanFeatureInfo.html"], + \["MBeanInfo", "javax/management/MBeanInfo.html"], + \["MBeanNotificationInfo", "javax/management/MBeanNotificationInfo.html"], + \["MBeanOperationInfo", "javax/management/MBeanOperationInfo.html"], + \["MBeanParameterInfo", "javax/management/MBeanParameterInfo.html"], + \["MBeanPermission", "javax/management/MBeanPermission.html"], + \["MBeanRegistration", "javax/management/MBeanRegistration.html"], + \["MBeanRegistrationException", "javax/management/MBeanRegistrationException.html"], + \["MBeanServer", "javax/management/MBeanServer.html"], + \["MBeanServerBuilder", "javax/management/MBeanServerBuilder.html"], + \["MBeanServerConnection", "javax/management/MBeanServerConnection.html"], + \["MBeanServerDelegate", "javax/management/MBeanServerDelegate.html"], + \["MBeanServerDelegateMBean", "javax/management/MBeanServerDelegateMBean.html"], + \["MBeanServerFactory", "javax/management/MBeanServerFactory.html"], + \["MBeanServerForwarder", "javax/management/remote/MBeanServerForwarder.html"], + \["MBeanServerInvocationHandler", "javax/management/MBeanServerInvocationHandler.html"], + \["MBeanServerNotification", "javax/management/MBeanServerNotification.html"], + \["MBeanServerNotificationFilter", "javax/management/relation/MBeanServerNotificationFilter.html"], + \["MBeanServerPermission", "javax/management/MBeanServerPermission.html"], + \["MBeanTrustPermission", "javax/management/MBeanTrustPermission.html"], + \["Media", "javax/print/attribute/standard/Media.html"], + \["MediaName", "javax/print/attribute/standard/MediaName.html"], + \["MediaPrintableArea", "javax/print/attribute/standard/MediaPrintableArea.html"], + \["MediaSize", "javax/print/attribute/standard/MediaSize.html"], + \["MediaSize.Engineering", "javax/print/attribute/standard/MediaSize.Engineering.html"], + \["MediaSize.ISO", "javax/print/attribute/standard/MediaSize.ISO.html"], + \["MediaSize.JIS", "javax/print/attribute/standard/MediaSize.JIS.html"], + \["MediaSize.NA", "javax/print/attribute/standard/MediaSize.NA.html"], + \["MediaSize.Other", "javax/print/attribute/standard/MediaSize.Other.html"], + \["MediaSizeName", "javax/print/attribute/standard/MediaSizeName.html"], + \["MediaTracker", "java/awt/MediaTracker.html"], + \["MediaTray", "javax/print/attribute/standard/MediaTray.html"], + \["Member", "java/lang/reflect/Member.html"], + \["MemoryCacheImageInputStream", "javax/imageio/stream/MemoryCacheImageInputStream.html"], + \["MemoryCacheImageOutputStream", "javax/imageio/stream/MemoryCacheImageOutputStream.html"], + \["MemoryHandler", "java/util/logging/MemoryHandler.html"], + \["MemoryImageSource", "java/awt/image/MemoryImageSource.html"], + \["MemoryManagerMXBean", "java/lang/management/MemoryManagerMXBean.html"], + \["MemoryMXBean", "java/lang/management/MemoryMXBean.html"], + \["MemoryNotificationInfo", "java/lang/management/MemoryNotificationInfo.html"], + \["MemoryPoolMXBean", "java/lang/management/MemoryPoolMXBean.html"], + \["MemoryType", "java/lang/management/MemoryType.html"], + \["MemoryUsage", "java/lang/management/MemoryUsage.html"], + \["Menu", "java/awt/Menu.html"], + \["MenuBar", "java/awt/MenuBar.html"], + \["MenuBarUI", "javax/swing/plaf/MenuBarUI.html"], + \["MenuComponent", "java/awt/MenuComponent.html"], + \["MenuContainer", "java/awt/MenuContainer.html"], + \["MenuDragMouseEvent", "javax/swing/event/MenuDragMouseEvent.html"], + \["MenuDragMouseListener", "javax/swing/event/MenuDragMouseListener.html"], + \["MenuElement", "javax/swing/MenuElement.html"], + \["MenuEvent", "javax/swing/event/MenuEvent.html"], + \["MenuItem", "java/awt/MenuItem.html"], + \["MenuItemUI", "javax/swing/plaf/MenuItemUI.html"], + \["MenuKeyEvent", "javax/swing/event/MenuKeyEvent.html"], + \["MenuKeyListener", "javax/swing/event/MenuKeyListener.html"], + \["MenuListener", "javax/swing/event/MenuListener.html"], + \["MenuSelectionManager", "javax/swing/MenuSelectionManager.html"], + \["MenuShortcut", "java/awt/MenuShortcut.html"], + \["MessageContext", "javax/xml/ws/handler/MessageContext.html"], + \["MessageContext.Scope", "javax/xml/ws/handler/MessageContext.Scope.html"], + \["MessageDigest", "java/security/MessageDigest.html"], + \["MessageDigestSpi", "java/security/MessageDigestSpi.html"], + \["MessageFactory", "javax/xml/soap/MessageFactory.html"], + \["MessageFormat", "java/text/MessageFormat.html"], + \["MessageFormat.Field", "java/text/MessageFormat.Field.html"], + \["MessageProp", "org/ietf/jgss/MessageProp.html"], + \["Messager", "javax/annotation/processing/Messager.html"], + \["MetaEventListener", "javax/sound/midi/MetaEventListener.html"], + \["MetalBorders", "javax/swing/plaf/metal/MetalBorders.html"], + \["MetalBorders.ButtonBorder", "javax/swing/plaf/metal/MetalBorders.ButtonBorder.html"], + \["MetalBorders.Flush3DBorder", "javax/swing/plaf/metal/MetalBorders.Flush3DBorder.html"], + \["MetalBorders.InternalFrameBorder", "javax/swing/plaf/metal/MetalBorders.InternalFrameBorder.html"], + \["MetalBorders.MenuBarBorder", "javax/swing/plaf/metal/MetalBorders.MenuBarBorder.html"], + \["MetalBorders.MenuItemBorder", "javax/swing/plaf/metal/MetalBorders.MenuItemBorder.html"], + \["MetalBorders.OptionDialogBorder", "javax/swing/plaf/metal/MetalBorders.OptionDialogBorder.html"], + \["MetalBorders.PaletteBorder", "javax/swing/plaf/metal/MetalBorders.PaletteBorder.html"], + \["MetalBorders.PopupMenuBorder", "javax/swing/plaf/metal/MetalBorders.PopupMenuBorder.html"], + \["MetalBorders.RolloverButtonBorder", "javax/swing/plaf/metal/MetalBorders.RolloverButtonBorder.html"], + \["MetalBorders.ScrollPaneBorder", "javax/swing/plaf/metal/MetalBorders.ScrollPaneBorder.html"], + \["MetalBorders.TableHeaderBorder", "javax/swing/plaf/metal/MetalBorders.TableHeaderBorder.html"], + \["MetalBorders.TextFieldBorder", "javax/swing/plaf/metal/MetalBorders.TextFieldBorder.html"], + \["MetalBorders.ToggleButtonBorder", "javax/swing/plaf/metal/MetalBorders.ToggleButtonBorder.html"], + \["MetalBorders.ToolBarBorder", "javax/swing/plaf/metal/MetalBorders.ToolBarBorder.html"], + \["MetalButtonUI", "javax/swing/plaf/metal/MetalButtonUI.html"], + \["MetalCheckBoxIcon", "javax/swing/plaf/metal/MetalCheckBoxIcon.html"], + \["MetalCheckBoxUI", "javax/swing/plaf/metal/MetalCheckBoxUI.html"], + \["MetalComboBoxButton", "javax/swing/plaf/metal/MetalComboBoxButton.html"], + \["MetalComboBoxEditor", "javax/swing/plaf/metal/MetalComboBoxEditor.html"], + \["MetalComboBoxEditor.UIResource", "javax/swing/plaf/metal/MetalComboBoxEditor.UIResource.html"], + \["MetalComboBoxIcon", "javax/swing/plaf/metal/MetalComboBoxIcon.html"], + \["MetalComboBoxUI", "javax/swing/plaf/metal/MetalComboBoxUI.html"], + \["MetalDesktopIconUI", "javax/swing/plaf/metal/MetalDesktopIconUI.html"], + \["MetalFileChooserUI", "javax/swing/plaf/metal/MetalFileChooserUI.html"], + \["MetalIconFactory", "javax/swing/plaf/metal/MetalIconFactory.html"], + \["MetalIconFactory.FileIcon16", "javax/swing/plaf/metal/MetalIconFactory.FileIcon16.html"], + \["MetalIconFactory.FolderIcon16", "javax/swing/plaf/metal/MetalIconFactory.FolderIcon16.html"], + \["MetalIconFactory.PaletteCloseIcon", "javax/swing/plaf/metal/MetalIconFactory.PaletteCloseIcon.html"], + \["MetalIconFactory.TreeControlIcon", "javax/swing/plaf/metal/MetalIconFactory.TreeControlIcon.html"], + \["MetalIconFactory.TreeFolderIcon", "javax/swing/plaf/metal/MetalIconFactory.TreeFolderIcon.html"], + \["MetalIconFactory.TreeLeafIcon", "javax/swing/plaf/metal/MetalIconFactory.TreeLeafIcon.html"], + \["MetalInternalFrameTitlePane", "javax/swing/plaf/metal/MetalInternalFrameTitlePane.html"], + \["MetalInternalFrameUI", "javax/swing/plaf/metal/MetalInternalFrameUI.html"], + \["MetalLabelUI", "javax/swing/plaf/metal/MetalLabelUI.html"], + \["MetalLookAndFeel", "javax/swing/plaf/metal/MetalLookAndFeel.html"], + \["MetalMenuBarUI", "javax/swing/plaf/metal/MetalMenuBarUI.html"], + \["MetalPopupMenuSeparatorUI", "javax/swing/plaf/metal/MetalPopupMenuSeparatorUI.html"], + \["MetalProgressBarUI", "javax/swing/plaf/metal/MetalProgressBarUI.html"], + \["MetalRadioButtonUI", "javax/swing/plaf/metal/MetalRadioButtonUI.html"], + \["MetalRootPaneUI", "javax/swing/plaf/metal/MetalRootPaneUI.html"], + \["MetalScrollBarUI", "javax/swing/plaf/metal/MetalScrollBarUI.html"], + \["MetalScrollButton", "javax/swing/plaf/metal/MetalScrollButton.html"], + \["MetalScrollPaneUI", "javax/swing/plaf/metal/MetalScrollPaneUI.html"], + \["MetalSeparatorUI", "javax/swing/plaf/metal/MetalSeparatorUI.html"], + \["MetalSliderUI", "javax/swing/plaf/metal/MetalSliderUI.html"], + \["MetalSplitPaneUI", "javax/swing/plaf/metal/MetalSplitPaneUI.html"], + \["MetalTabbedPaneUI", "javax/swing/plaf/metal/MetalTabbedPaneUI.html"], + \["MetalTextFieldUI", "javax/swing/plaf/metal/MetalTextFieldUI.html"], + \["MetalTheme", "javax/swing/plaf/metal/MetalTheme.html"], + \["MetalToggleButtonUI", "javax/swing/plaf/metal/MetalToggleButtonUI.html"], + \["MetalToolBarUI", "javax/swing/plaf/metal/MetalToolBarUI.html"], + \["MetalToolTipUI", "javax/swing/plaf/metal/MetalToolTipUI.html"], + \["MetalTreeUI", "javax/swing/plaf/metal/MetalTreeUI.html"], + \["MetaMessage", "javax/sound/midi/MetaMessage.html"], + \["Method", "java/lang/reflect/Method.html"], + \["MethodDescriptor", "java/beans/MethodDescriptor.html"], + \["MGF1ParameterSpec", "java/security/spec/MGF1ParameterSpec.html"], + \["MidiChannel", "javax/sound/midi/MidiChannel.html"], + \["MidiDevice", "javax/sound/midi/MidiDevice.html"], + \["MidiDevice.Info", "javax/sound/midi/MidiDevice.Info.html"], + \["MidiDeviceProvider", "javax/sound/midi/spi/MidiDeviceProvider.html"], + \["MidiEvent", "javax/sound/midi/MidiEvent.html"], + \["MidiFileFormat", "javax/sound/midi/MidiFileFormat.html"], + \["MidiFileReader", "javax/sound/midi/spi/MidiFileReader.html"], + \["MidiFileWriter", "javax/sound/midi/spi/MidiFileWriter.html"], + \["MidiMessage", "javax/sound/midi/MidiMessage.html"], + \["MidiSystem", "javax/sound/midi/MidiSystem.html"], + \["MidiUnavailableException", "javax/sound/midi/MidiUnavailableException.html"], + \["MimeHeader", "javax/xml/soap/MimeHeader.html"], + \["MimeHeaders", "javax/xml/soap/MimeHeaders.html"], + \["MimeType", "javax/activation/MimeType.html"], + \["MimeTypeParameterList", "javax/activation/MimeTypeParameterList.html"], + \["MimeTypeParseException", "java/awt/datatransfer/MimeTypeParseException.html"], + \["MimeTypeParseException", "javax/activation/MimeTypeParseException.html"], + \["MimetypesFileTypeMap", "javax/activation/MimetypesFileTypeMap.html"], + \["MinimalHTMLWriter", "javax/swing/text/html/MinimalHTMLWriter.html"], + \["MirroredTypeException", "javax/lang/model/type/MirroredTypeException.html"], + \["MirroredTypesException", "javax/lang/model/type/MirroredTypesException.html"], + \["MissingFormatArgumentException", "java/util/MissingFormatArgumentException.html"], + \["MissingFormatWidthException", "java/util/MissingFormatWidthException.html"], + \["MissingResourceException", "java/util/MissingResourceException.html"], + \["Mixer", "javax/sound/sampled/Mixer.html"], + \["Mixer.Info", "javax/sound/sampled/Mixer.Info.html"], + \["MixerProvider", "javax/sound/sampled/spi/MixerProvider.html"], + \["MLet", "javax/management/loading/MLet.html"], + \["MLetContent", "javax/management/loading/MLetContent.html"], + \["MLetMBean", "javax/management/loading/MLetMBean.html"], + \["ModelMBean", "javax/management/modelmbean/ModelMBean.html"], + \["ModelMBeanAttributeInfo", "javax/management/modelmbean/ModelMBeanAttributeInfo.html"], + \["ModelMBeanConstructorInfo", "javax/management/modelmbean/ModelMBeanConstructorInfo.html"], + \["ModelMBeanInfo", "javax/management/modelmbean/ModelMBeanInfo.html"], + \["ModelMBeanInfoSupport", "javax/management/modelmbean/ModelMBeanInfoSupport.html"], + \["ModelMBeanNotificationBroadcaster", "javax/management/modelmbean/ModelMBeanNotificationBroadcaster.html"], + \["ModelMBeanNotificationInfo", "javax/management/modelmbean/ModelMBeanNotificationInfo.html"], + \["ModelMBeanOperationInfo", "javax/management/modelmbean/ModelMBeanOperationInfo.html"], + \["ModificationItem", "javax/naming/directory/ModificationItem.html"], + \["Modifier", "java/lang/reflect/Modifier.html"], + \["Modifier", "javax/lang/model/element/Modifier.html"], + \["Monitor", "javax/management/monitor/Monitor.html"], + \["MonitorInfo", "java/lang/management/MonitorInfo.html"], + \["MonitorMBean", "javax/management/monitor/MonitorMBean.html"], + \["MonitorNotification", "javax/management/monitor/MonitorNotification.html"], + \["MonitorSettingException", "javax/management/monitor/MonitorSettingException.html"], + \["MouseAdapter", "java/awt/event/MouseAdapter.html"], + \["MouseDragGestureRecognizer", "java/awt/dnd/MouseDragGestureRecognizer.html"], + \["MouseEvent", "java/awt/event/MouseEvent.html"], + \["MouseEvent", "org/w3c/dom/events/MouseEvent.html"], + \["MouseInfo", "java/awt/MouseInfo.html"], + \["MouseInputAdapter", "javax/swing/event/MouseInputAdapter.html"], + \["MouseInputListener", "javax/swing/event/MouseInputListener.html"], + \["MouseListener", "java/awt/event/MouseListener.html"], + \["MouseMotionAdapter", "java/awt/event/MouseMotionAdapter.html"], + \["MouseMotionListener", "java/awt/event/MouseMotionListener.html"], + \["MouseWheelEvent", "java/awt/event/MouseWheelEvent.html"], + \["MouseWheelListener", "java/awt/event/MouseWheelListener.html"], + \["MTOM", "javax/xml/ws/soap/MTOM.html"], + \["MTOMFeature", "javax/xml/ws/soap/MTOMFeature.html"], + \["MultiButtonUI", "javax/swing/plaf/multi/MultiButtonUI.html"], + \["MulticastSocket", "java/net/MulticastSocket.html"], + \["MultiColorChooserUI", "javax/swing/plaf/multi/MultiColorChooserUI.html"], + \["MultiComboBoxUI", "javax/swing/plaf/multi/MultiComboBoxUI.html"], + \["MultiDesktopIconUI", "javax/swing/plaf/multi/MultiDesktopIconUI.html"], + \["MultiDesktopPaneUI", "javax/swing/plaf/multi/MultiDesktopPaneUI.html"], + \["MultiDoc", "javax/print/MultiDoc.html"], + \["MultiDocPrintJob", "javax/print/MultiDocPrintJob.html"], + \["MultiDocPrintService", "javax/print/MultiDocPrintService.html"], + \["MultiFileChooserUI", "javax/swing/plaf/multi/MultiFileChooserUI.html"], + \["MultiInternalFrameUI", "javax/swing/plaf/multi/MultiInternalFrameUI.html"], + \["MultiLabelUI", "javax/swing/plaf/multi/MultiLabelUI.html"], + \["MultiListUI", "javax/swing/plaf/multi/MultiListUI.html"], + \["MultiLookAndFeel", "javax/swing/plaf/multi/MultiLookAndFeel.html"], + \["MultiMenuBarUI", "javax/swing/plaf/multi/MultiMenuBarUI.html"], + \["MultiMenuItemUI", "javax/swing/plaf/multi/MultiMenuItemUI.html"], + \["MultiOptionPaneUI", "javax/swing/plaf/multi/MultiOptionPaneUI.html"], + \["MultiPanelUI", "javax/swing/plaf/multi/MultiPanelUI.html"], + \["MultiPixelPackedSampleModel", "java/awt/image/MultiPixelPackedSampleModel.html"], + \["MultipleComponentProfileHelper", "org/omg/IOP/MultipleComponentProfileHelper.html"], + \["MultipleComponentProfileHolder", "org/omg/IOP/MultipleComponentProfileHolder.html"], + \["MultipleDocumentHandling", "javax/print/attribute/standard/MultipleDocumentHandling.html"], + \["MultipleGradientPaint", "java/awt/MultipleGradientPaint.html"], + \["MultipleGradientPaint.ColorSpaceType", "java/awt/MultipleGradientPaint.ColorSpaceType.html"], + \["MultipleGradientPaint.CycleMethod", "java/awt/MultipleGradientPaint.CycleMethod.html"], + \["MultipleMaster", "java/awt/font/MultipleMaster.html"], + \["MultiPopupMenuUI", "javax/swing/plaf/multi/MultiPopupMenuUI.html"], + \["MultiProgressBarUI", "javax/swing/plaf/multi/MultiProgressBarUI.html"], + \["MultiRootPaneUI", "javax/swing/plaf/multi/MultiRootPaneUI.html"], + \["MultiScrollBarUI", "javax/swing/plaf/multi/MultiScrollBarUI.html"], + \["MultiScrollPaneUI", "javax/swing/plaf/multi/MultiScrollPaneUI.html"], + \["MultiSeparatorUI", "javax/swing/plaf/multi/MultiSeparatorUI.html"], + \["MultiSliderUI", "javax/swing/plaf/multi/MultiSliderUI.html"], + \["MultiSpinnerUI", "javax/swing/plaf/multi/MultiSpinnerUI.html"], + \["MultiSplitPaneUI", "javax/swing/plaf/multi/MultiSplitPaneUI.html"], + \["MultiTabbedPaneUI", "javax/swing/plaf/multi/MultiTabbedPaneUI.html"], + \["MultiTableHeaderUI", "javax/swing/plaf/multi/MultiTableHeaderUI.html"], + \["MultiTableUI", "javax/swing/plaf/multi/MultiTableUI.html"], + \["MultiTextUI", "javax/swing/plaf/multi/MultiTextUI.html"], + \["MultiToolBarUI", "javax/swing/plaf/multi/MultiToolBarUI.html"], + \["MultiToolTipUI", "javax/swing/plaf/multi/MultiToolTipUI.html"], + \["MultiTreeUI", "javax/swing/plaf/multi/MultiTreeUI.html"], + \["MultiViewportUI", "javax/swing/plaf/multi/MultiViewportUI.html"], + \["MutableAttributeSet", "javax/swing/text/MutableAttributeSet.html"], + \["MutableComboBoxModel", "javax/swing/MutableComboBoxModel.html"], + \["MutableTreeNode", "javax/swing/tree/MutableTreeNode.html"], + \["MutationEvent", "org/w3c/dom/events/MutationEvent.html"], + \["MXBean", "javax/management/MXBean.html"], + \["Name", "javax/lang/model/element/Name.html"], + \["Name", "javax/naming/Name.html"], + \["Name", "javax/xml/soap/Name.html"], + \["NameAlreadyBoundException", "javax/naming/NameAlreadyBoundException.html"], + \["NameCallback", "javax/security/auth/callback/NameCallback.html"], + \["NameClassPair", "javax/naming/NameClassPair.html"], + \["NameComponent", "org/omg/CosNaming/NameComponent.html"], + \["NameComponentHelper", "org/omg/CosNaming/NameComponentHelper.html"], + \["NameComponentHolder", "org/omg/CosNaming/NameComponentHolder.html"], + \["NamedNodeMap", "org/w3c/dom/NamedNodeMap.html"], + \["NamedValue", "org/omg/CORBA/NamedValue.html"], + \["NameDynAnyPair", "org/omg/DynamicAny/NameDynAnyPair.html"], + \["NameDynAnyPairHelper", "org/omg/DynamicAny/NameDynAnyPairHelper.html"], + \["NameDynAnyPairSeqHelper", "org/omg/DynamicAny/NameDynAnyPairSeqHelper.html"], + \["NameHelper", "org/omg/CosNaming/NameHelper.html"], + \["NameHolder", "org/omg/CosNaming/NameHolder.html"], + \["NameList", "org/w3c/dom/NameList.html"], + \["NameNotFoundException", "javax/naming/NameNotFoundException.html"], + \["NameParser", "javax/naming/NameParser.html"], + \["Namespace", "javax/xml/stream/events/Namespace.html"], + \["NamespaceChangeListener", "javax/naming/event/NamespaceChangeListener.html"], + \["NamespaceContext", "javax/xml/namespace/NamespaceContext.html"], + \["NamespaceSupport", "org/xml/sax/helpers/NamespaceSupport.html"], + \["NameValuePair", "org/omg/CORBA/NameValuePair.html"], + \["NameValuePair", "org/omg/DynamicAny/NameValuePair.html"], + \["NameValuePairHelper", "org/omg/CORBA/NameValuePairHelper.html"], + \["NameValuePairHelper", "org/omg/DynamicAny/NameValuePairHelper.html"], + \["NameValuePairSeqHelper", "org/omg/DynamicAny/NameValuePairSeqHelper.html"], + \["Naming", "java/rmi/Naming.html"], + \["NamingContext", "org/omg/CosNaming/NamingContext.html"], + \["NamingContextExt", "org/omg/CosNaming/NamingContextExt.html"], + \["NamingContextExtHelper", "org/omg/CosNaming/NamingContextExtHelper.html"], + \["NamingContextExtHolder", "org/omg/CosNaming/NamingContextExtHolder.html"], + \["NamingContextExtOperations", "org/omg/CosNaming/NamingContextExtOperations.html"], + \["NamingContextExtPOA", "org/omg/CosNaming/NamingContextExtPOA.html"], + \["NamingContextHelper", "org/omg/CosNaming/NamingContextHelper.html"], + \["NamingContextHolder", "org/omg/CosNaming/NamingContextHolder.html"], + \["NamingContextOperations", "org/omg/CosNaming/NamingContextOperations.html"], + \["NamingContextPOA", "org/omg/CosNaming/NamingContextPOA.html"], + \["NamingEnumeration", "javax/naming/NamingEnumeration.html"], + \["NamingEvent", "javax/naming/event/NamingEvent.html"], + \["NamingException", "javax/naming/NamingException.html"], + \["NamingExceptionEvent", "javax/naming/event/NamingExceptionEvent.html"], + \["NamingListener", "javax/naming/event/NamingListener.html"], + \["NamingManager", "javax/naming/spi/NamingManager.html"], + \["NamingSecurityException", "javax/naming/NamingSecurityException.html"], + \["NavigableMap", "java/util/NavigableMap.html"], + \["NavigableSet", "java/util/NavigableSet.html"], + \["NavigationFilter", "javax/swing/text/NavigationFilter.html"], + \["NavigationFilter.FilterBypass", "javax/swing/text/NavigationFilter.FilterBypass.html"], + \["NClob", "java/sql/NClob.html"], + \["NegativeArraySizeException", "java/lang/NegativeArraySizeException.html"], + \["NestingKind", "javax/lang/model/element/NestingKind.html"], + \["NetPermission", "java/net/NetPermission.html"], + \["NetworkInterface", "java/net/NetworkInterface.html"], + \["NO_IMPLEMENT", "org/omg/CORBA/NO_IMPLEMENT.html"], + \["NO_MEMORY", "org/omg/CORBA/NO_MEMORY.html"], + \["NO_PERMISSION", "org/omg/CORBA/NO_PERMISSION.html"], + \["NO_RESOURCES", "org/omg/CORBA/NO_RESOURCES.html"], + \["NO_RESPONSE", "org/omg/CORBA/NO_RESPONSE.html"], + \["NoClassDefFoundError", "java/lang/NoClassDefFoundError.html"], + \["NoConnectionPendingException", "java/nio/channels/NoConnectionPendingException.html"], + \["NoContext", "org/omg/PortableServer/CurrentPackage/NoContext.html"], + \["NoContextHelper", "org/omg/PortableServer/CurrentPackage/NoContextHelper.html"], + \["Node", "javax/xml/soap/Node.html"], + \["Node", "org/w3c/dom/Node.html"], + \["NodeChangeEvent", "java/util/prefs/NodeChangeEvent.html"], + \["NodeChangeListener", "java/util/prefs/NodeChangeListener.html"], + \["NodeList", "org/w3c/dom/NodeList.html"], + \["NodeSetData", "javax/xml/crypto/NodeSetData.html"], + \["NoInitialContextException", "javax/naming/NoInitialContextException.html"], + \["NON_EXISTENT", "org/omg/PortableInterceptor/NON_EXISTENT.html"], + \["NoninvertibleTransformException", "java/awt/geom/NoninvertibleTransformException.html"], + \["NonReadableChannelException", "java/nio/channels/NonReadableChannelException.html"], + \["NonWritableChannelException", "java/nio/channels/NonWritableChannelException.html"], + \["NoPermissionException", "javax/naming/NoPermissionException.html"], + \["NormalizedStringAdapter", "javax/xml/bind/annotation/adapters/NormalizedStringAdapter.html"], + \["Normalizer", "java/text/Normalizer.html"], + \["Normalizer.Form", "java/text/Normalizer.Form.html"], + \["NoRouteToHostException", "java/net/NoRouteToHostException.html"], + \["NoServant", "org/omg/PortableServer/POAPackage/NoServant.html"], + \["NoServantHelper", "org/omg/PortableServer/POAPackage/NoServantHelper.html"], + \["NoSuchAlgorithmException", "java/security/NoSuchAlgorithmException.html"], + \["NoSuchAttributeException", "javax/naming/directory/NoSuchAttributeException.html"], + \["NoSuchElementException", "java/util/NoSuchElementException.html"], + \["NoSuchFieldError", "java/lang/NoSuchFieldError.html"], + \["NoSuchFieldException", "java/lang/NoSuchFieldException.html"], + \["NoSuchMechanismException", "javax/xml/crypto/NoSuchMechanismException.html"], + \["NoSuchMethodError", "java/lang/NoSuchMethodError.html"], + \["NoSuchMethodException", "java/lang/NoSuchMethodException.html"], + \["NoSuchObjectException", "java/rmi/NoSuchObjectException.html"], + \["NoSuchPaddingException", "javax/crypto/NoSuchPaddingException.html"], + \["NoSuchProviderException", "java/security/NoSuchProviderException.html"], + \["NotActiveException", "java/io/NotActiveException.html"], + \["Notation", "org/w3c/dom/Notation.html"], + \["NotationDeclaration", "javax/xml/stream/events/NotationDeclaration.html"], + \["NotBoundException", "java/rmi/NotBoundException.html"], + \["NotCompliantMBeanException", "javax/management/NotCompliantMBeanException.html"], + \["NotContextException", "javax/naming/NotContextException.html"], + \["NotEmpty", "org/omg/CosNaming/NamingContextPackage/NotEmpty.html"], + \["NotEmptyHelper", "org/omg/CosNaming/NamingContextPackage/NotEmptyHelper.html"], + \["NotEmptyHolder", "org/omg/CosNaming/NamingContextPackage/NotEmptyHolder.html"], + \["NotFound", "org/omg/CosNaming/NamingContextPackage/NotFound.html"], + \["NotFoundHelper", "org/omg/CosNaming/NamingContextPackage/NotFoundHelper.html"], + \["NotFoundHolder", "org/omg/CosNaming/NamingContextPackage/NotFoundHolder.html"], + \["NotFoundReason", "org/omg/CosNaming/NamingContextPackage/NotFoundReason.html"], + \["NotFoundReasonHelper", "org/omg/CosNaming/NamingContextPackage/NotFoundReasonHelper.html"], + \["NotFoundReasonHolder", "org/omg/CosNaming/NamingContextPackage/NotFoundReasonHolder.html"], + \["NotIdentifiableEvent", "javax/xml/bind/NotIdentifiableEvent.html"], + \["NotIdentifiableEventImpl", "javax/xml/bind/helpers/NotIdentifiableEventImpl.html"], + \["Notification", "javax/management/Notification.html"], + \["NotificationBroadcaster", "javax/management/NotificationBroadcaster.html"], + \["NotificationBroadcasterSupport", "javax/management/NotificationBroadcasterSupport.html"], + \["NotificationEmitter", "javax/management/NotificationEmitter.html"], + \["NotificationFilter", "javax/management/NotificationFilter.html"], + \["NotificationFilterSupport", "javax/management/NotificationFilterSupport.html"], + \["NotificationListener", "javax/management/NotificationListener.html"], + \["NotificationResult", "javax/management/remote/NotificationResult.html"], + \["NotOwnerException", "java/security/acl/NotOwnerException.html"], + \["NotSerializableException", "java/io/NotSerializableException.html"], + \["NotYetBoundException", "java/nio/channels/NotYetBoundException.html"], + \["NotYetConnectedException", "java/nio/channels/NotYetConnectedException.html"], + \["NoType", "javax/lang/model/type/NoType.html"], + \["NullCipher", "javax/crypto/NullCipher.html"], + \["NullPointerException", "java/lang/NullPointerException.html"], + \["NullType", "javax/lang/model/type/NullType.html"], + \["Number", "java/lang/Number.html"], + \["NumberFormat", "java/text/NumberFormat.html"], + \["NumberFormat.Field", "java/text/NumberFormat.Field.html"], + \["NumberFormatException", "java/lang/NumberFormatException.html"], + \["NumberFormatProvider", "java/text/spi/NumberFormatProvider.html"], + \["NumberFormatter", "javax/swing/text/NumberFormatter.html"], + \["NumberOfDocuments", "javax/print/attribute/standard/NumberOfDocuments.html"], + \["NumberOfInterveningJobs", "javax/print/attribute/standard/NumberOfInterveningJobs.html"], + \["NumberUp", "javax/print/attribute/standard/NumberUp.html"], + \["NumberUpSupported", "javax/print/attribute/standard/NumberUpSupported.html"], + \["NumericShaper", "java/awt/font/NumericShaper.html"], + \["NVList", "org/omg/CORBA/NVList.html"], + \["OAEPParameterSpec", "javax/crypto/spec/OAEPParameterSpec.html"], + \["OBJ_ADAPTER", "org/omg/CORBA/OBJ_ADAPTER.html"], + \["Object", "java/lang/Object.html"], + \["Object", "org/omg/CORBA/Object.html"], + \["OBJECT_NOT_EXIST", "org/omg/CORBA/OBJECT_NOT_EXIST.html"], + \["ObjectAlreadyActive", "org/omg/PortableServer/POAPackage/ObjectAlreadyActive.html"], + \["ObjectAlreadyActiveHelper", "org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHelper.html"], + \["ObjectChangeListener", "javax/naming/event/ObjectChangeListener.html"], + \["ObjectFactory", "javax/naming/spi/ObjectFactory.html"], + \["ObjectFactoryBuilder", "javax/naming/spi/ObjectFactoryBuilder.html"], + \["ObjectHelper", "org/omg/CORBA/ObjectHelper.html"], + \["ObjectHolder", "org/omg/CORBA/ObjectHolder.html"], + \["ObjectIdHelper", "org/omg/PortableInterceptor/ObjectIdHelper.html"], + \["ObjectIdHelper", "org/omg/PortableInterceptor/ORBInitInfoPackage/ObjectIdHelper.html"], + \["ObjectImpl", "org/omg/CORBA/portable/ObjectImpl.html"], + \["ObjectImpl", "org/omg/CORBA_2_3/portable/ObjectImpl.html"], + \["ObjectInput", "java/io/ObjectInput.html"], + \["ObjectInputStream", "java/io/ObjectInputStream.html"], + \["ObjectInputStream.GetField", "java/io/ObjectInputStream.GetField.html"], + \["ObjectInputValidation", "java/io/ObjectInputValidation.html"], + \["ObjectInstance", "javax/management/ObjectInstance.html"], + \["ObjectName", "javax/management/ObjectName.html"], + \["ObjectNotActive", "org/omg/PortableServer/POAPackage/ObjectNotActive.html"], + \["ObjectNotActiveHelper", "org/omg/PortableServer/POAPackage/ObjectNotActiveHelper.html"], + \["ObjectOutput", "java/io/ObjectOutput.html"], + \["ObjectOutputStream", "java/io/ObjectOutputStream.html"], + \["ObjectOutputStream.PutField", "java/io/ObjectOutputStream.PutField.html"], + \["ObjectReferenceFactory", "org/omg/PortableInterceptor/ObjectReferenceFactory.html"], + \["ObjectReferenceFactoryHelper", "org/omg/PortableInterceptor/ObjectReferenceFactoryHelper.html"], + \["ObjectReferenceFactoryHolder", "org/omg/PortableInterceptor/ObjectReferenceFactoryHolder.html"], + \["ObjectReferenceTemplate", "org/omg/PortableInterceptor/ObjectReferenceTemplate.html"], + \["ObjectReferenceTemplateHelper", "org/omg/PortableInterceptor/ObjectReferenceTemplateHelper.html"], + \["ObjectReferenceTemplateHolder", "org/omg/PortableInterceptor/ObjectReferenceTemplateHolder.html"], + \["ObjectReferenceTemplateSeqHelper", "org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHelper.html"], + \["ObjectReferenceTemplateSeqHolder", "org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHolder.html"], + \["ObjectStreamClass", "java/io/ObjectStreamClass.html"], + \["ObjectStreamConstants", "java/io/ObjectStreamConstants.html"], + \["ObjectStreamException", "java/io/ObjectStreamException.html"], + \["ObjectStreamField", "java/io/ObjectStreamField.html"], + \["ObjectView", "javax/swing/text/html/ObjectView.html"], + \["ObjID", "java/rmi/server/ObjID.html"], + \["Observable", "java/util/Observable.html"], + \["Observer", "java/util/Observer.html"], + \["OceanTheme", "javax/swing/plaf/metal/OceanTheme.html"], + \["OctetSeqHelper", "org/omg/CORBA/OctetSeqHelper.html"], + \["OctetSeqHolder", "org/omg/CORBA/OctetSeqHolder.html"], + \["OctetStreamData", "javax/xml/crypto/OctetStreamData.html"], + \["Oid", "org/ietf/jgss/Oid.html"], + \["OMGVMCID", "org/omg/CORBA/OMGVMCID.html"], + \["Oneway", "javax/jws/Oneway.html"], + \["OpenDataException", "javax/management/openmbean/OpenDataException.html"], + \["OpenMBeanAttributeInfo", "javax/management/openmbean/OpenMBeanAttributeInfo.html"], + \["OpenMBeanAttributeInfoSupport", "javax/management/openmbean/OpenMBeanAttributeInfoSupport.html"], + \["OpenMBeanConstructorInfo", "javax/management/openmbean/OpenMBeanConstructorInfo.html"], + \["OpenMBeanConstructorInfoSupport", "javax/management/openmbean/OpenMBeanConstructorInfoSupport.html"], + \["OpenMBeanInfo", "javax/management/openmbean/OpenMBeanInfo.html"], + \["OpenMBeanInfoSupport", "javax/management/openmbean/OpenMBeanInfoSupport.html"], + \["OpenMBeanOperationInfo", "javax/management/openmbean/OpenMBeanOperationInfo.html"], + \["OpenMBeanOperationInfoSupport", "javax/management/openmbean/OpenMBeanOperationInfoSupport.html"], + \["OpenMBeanParameterInfo", "javax/management/openmbean/OpenMBeanParameterInfo.html"], + \["OpenMBeanParameterInfoSupport", "javax/management/openmbean/OpenMBeanParameterInfoSupport.html"], + \["OpenType", "java/awt/font/OpenType.html"], + \["OpenType", "javax/management/openmbean/OpenType.html"], + \["OperatingSystemMXBean", "java/lang/management/OperatingSystemMXBean.html"], + \["Operation", "java/rmi/server/Operation.html"], + \["OperationNotSupportedException", "javax/naming/OperationNotSupportedException.html"], + \["OperationsException", "javax/management/OperationsException.html"], + \["Option", "javax/swing/text/html/Option.html"], + \["OptionalDataException", "java/io/OptionalDataException.html"], + \["OptionChecker", "javax/tools/OptionChecker.html"], + \["OptionPaneUI", "javax/swing/plaf/OptionPaneUI.html"], + \["ORB", "org/omg/CORBA/ORB.html"], + \["ORB", "org/omg/CORBA_2_3/ORB.html"], + \["ORBIdHelper", "org/omg/PortableInterceptor/ORBIdHelper.html"], + \["ORBInitializer", "org/omg/PortableInterceptor/ORBInitializer.html"], + \["ORBInitializerOperations", "org/omg/PortableInterceptor/ORBInitializerOperations.html"], + \["ORBInitInfo", "org/omg/PortableInterceptor/ORBInitInfo.html"], + \["ORBInitInfoOperations", "org/omg/PortableInterceptor/ORBInitInfoOperations.html"], + \["OrientationRequested", "javax/print/attribute/standard/OrientationRequested.html"], + \["OutOfMemoryError", "java/lang/OutOfMemoryError.html"], + \["OutputDeviceAssigned", "javax/print/attribute/standard/OutputDeviceAssigned.html"], + \["OutputKeys", "javax/xml/transform/OutputKeys.html"], + \["OutputStream", "java/io/OutputStream.html"], + \["OutputStream", "org/omg/CORBA/portable/OutputStream.html"], + \["OutputStream", "org/omg/CORBA_2_3/portable/OutputStream.html"], + \["OutputStreamWriter", "java/io/OutputStreamWriter.html"], + \["OverlappingFileLockException", "java/nio/channels/OverlappingFileLockException.html"], + \["OverlayLayout", "javax/swing/OverlayLayout.html"], + \["Override", "java/lang/Override.html"], + \["Owner", "java/security/acl/Owner.html"], + \["Pack200", "java/util/jar/Pack200.html"], + \["Pack200.Packer", "java/util/jar/Pack200.Packer.html"], + \["Pack200.Unpacker", "java/util/jar/Pack200.Unpacker.html"], + \["Package", "java/lang/Package.html"], + \["PackageElement", "javax/lang/model/element/PackageElement.html"], + \["PackedColorModel", "java/awt/image/PackedColorModel.html"], + \["Pageable", "java/awt/print/Pageable.html"], + \["PageAttributes", "java/awt/PageAttributes.html"], + \["PageAttributes.ColorType", "java/awt/PageAttributes.ColorType.html"], + \["PageAttributes.MediaType", "java/awt/PageAttributes.MediaType.html"], + \["PageAttributes.OrientationRequestedType", "java/awt/PageAttributes.OrientationRequestedType.html"], + \["PageAttributes.OriginType", "java/awt/PageAttributes.OriginType.html"], + \["PageAttributes.PrintQualityType", "java/awt/PageAttributes.PrintQualityType.html"], + \["PagedResultsControl", "javax/naming/ldap/PagedResultsControl.html"], + \["PagedResultsResponseControl", "javax/naming/ldap/PagedResultsResponseControl.html"], + \["PageFormat", "java/awt/print/PageFormat.html"], + \["PageRanges", "javax/print/attribute/standard/PageRanges.html"], + \["PagesPerMinute", "javax/print/attribute/standard/PagesPerMinute.html"], + \["PagesPerMinuteColor", "javax/print/attribute/standard/PagesPerMinuteColor.html"], + \["Paint", "java/awt/Paint.html"], + \["PaintContext", "java/awt/PaintContext.html"], + \["PaintEvent", "java/awt/event/PaintEvent.html"], + \["Panel", "java/awt/Panel.html"], + \["PanelUI", "javax/swing/plaf/PanelUI.html"], + \["Paper", "java/awt/print/Paper.html"], + \["ParagraphView", "javax/swing/text/html/ParagraphView.html"], + \["ParagraphView", "javax/swing/text/ParagraphView.html"], + \["Parameter", "org/omg/Dynamic/Parameter.html"], + \["ParameterBlock", "java/awt/image/renderable/ParameterBlock.html"], + \["ParameterDescriptor", "java/beans/ParameterDescriptor.html"], + \["ParameterizedType", "java/lang/reflect/ParameterizedType.html"], + \["ParameterMetaData", "java/sql/ParameterMetaData.html"], + \["ParameterMode", "org/omg/CORBA/ParameterMode.html"], + \["ParameterModeHelper", "org/omg/CORBA/ParameterModeHelper.html"], + \["ParameterModeHolder", "org/omg/CORBA/ParameterModeHolder.html"], + \["ParseConversionEvent", "javax/xml/bind/ParseConversionEvent.html"], + \["ParseConversionEventImpl", "javax/xml/bind/helpers/ParseConversionEventImpl.html"], + \["ParseException", "java/text/ParseException.html"], + \["ParsePosition", "java/text/ParsePosition.html"], + \["Parser", "javax/swing/text/html/parser/Parser.html"], + \["Parser", "org/xml/sax/Parser.html"], + \["ParserAdapter", "org/xml/sax/helpers/ParserAdapter.html"], + \["ParserConfigurationException", "javax/xml/parsers/ParserConfigurationException.html"], + \["ParserDelegator", "javax/swing/text/html/parser/ParserDelegator.html"], + \["ParserFactory", "org/xml/sax/helpers/ParserFactory.html"], + \["PartialResultException", "javax/naming/PartialResultException.html"], + \["PasswordAuthentication", "java/net/PasswordAuthentication.html"], + \["PasswordCallback", "javax/security/auth/callback/PasswordCallback.html"], + \["PasswordView", "javax/swing/text/PasswordView.html"], + \["Patch", "javax/sound/midi/Patch.html"], + \["Path2D", "java/awt/geom/Path2D.html"], + \["Path2D.Double", "java/awt/geom/Path2D.Double.html"], + \["Path2D.Float", "java/awt/geom/Path2D.Float.html"], + \["PathIterator", "java/awt/geom/PathIterator.html"], + \["Pattern", "java/util/regex/Pattern.html"], + \["PatternSyntaxException", "java/util/regex/PatternSyntaxException.html"], + \["PBEKey", "javax/crypto/interfaces/PBEKey.html"], + \["PBEKeySpec", "javax/crypto/spec/PBEKeySpec.html"], + \["PBEParameterSpec", "javax/crypto/spec/PBEParameterSpec.html"], + \["PDLOverrideSupported", "javax/print/attribute/standard/PDLOverrideSupported.html"], + \["Permission", "java/security/acl/Permission.html"], + \["Permission", "java/security/Permission.html"], + \["PermissionCollection", "java/security/PermissionCollection.html"], + \["Permissions", "java/security/Permissions.html"], + \["PERSIST_STORE", "org/omg/CORBA/PERSIST_STORE.html"], + \["PersistenceDelegate", "java/beans/PersistenceDelegate.html"], + \["PersistentMBean", "javax/management/PersistentMBean.html"], + \["PGPData", "javax/xml/crypto/dsig/keyinfo/PGPData.html"], + \["PhantomReference", "java/lang/ref/PhantomReference.html"], + \["Pipe", "java/nio/channels/Pipe.html"], + \["Pipe.SinkChannel", "java/nio/channels/Pipe.SinkChannel.html"], + \["Pipe.SourceChannel", "java/nio/channels/Pipe.SourceChannel.html"], + \["PipedInputStream", "java/io/PipedInputStream.html"], + \["PipedOutputStream", "java/io/PipedOutputStream.html"], + \["PipedReader", "java/io/PipedReader.html"], + \["PipedWriter", "java/io/PipedWriter.html"], + \["PixelGrabber", "java/awt/image/PixelGrabber.html"], + \["PixelInterleavedSampleModel", "java/awt/image/PixelInterleavedSampleModel.html"], + \["PKCS8EncodedKeySpec", "java/security/spec/PKCS8EncodedKeySpec.html"], + \["PKIXBuilderParameters", "java/security/cert/PKIXBuilderParameters.html"], + \["PKIXCertPathBuilderResult", "java/security/cert/PKIXCertPathBuilderResult.html"], + \["PKIXCertPathChecker", "java/security/cert/PKIXCertPathChecker.html"], + \["PKIXCertPathValidatorResult", "java/security/cert/PKIXCertPathValidatorResult.html"], + \["PKIXParameters", "java/security/cert/PKIXParameters.html"], + \["PlainDocument", "javax/swing/text/PlainDocument.html"], + \["PlainView", "javax/swing/text/PlainView.html"], + \["POA", "org/omg/PortableServer/POA.html"], + \["POAHelper", "org/omg/PortableServer/POAHelper.html"], + \["POAManager", "org/omg/PortableServer/POAManager.html"], + \["POAManagerOperations", "org/omg/PortableServer/POAManagerOperations.html"], + \["POAOperations", "org/omg/PortableServer/POAOperations.html"], + \["Point", "java/awt/Point.html"], + \["Point2D", "java/awt/geom/Point2D.html"], + \["Point2D.Double", "java/awt/geom/Point2D.Double.html"], + \["Point2D.Float", "java/awt/geom/Point2D.Float.html"], + \["PointerInfo", "java/awt/PointerInfo.html"], + \["Policy", "java/security/Policy.html"], + \["Policy", "javax/security/auth/Policy.html"], + \["Policy", "org/omg/CORBA/Policy.html"], + \["Policy.Parameters", "java/security/Policy.Parameters.html"], + \["PolicyError", "org/omg/CORBA/PolicyError.html"], + \["PolicyErrorCodeHelper", "org/omg/CORBA/PolicyErrorCodeHelper.html"], + \["PolicyErrorHelper", "org/omg/CORBA/PolicyErrorHelper.html"], + \["PolicyErrorHolder", "org/omg/CORBA/PolicyErrorHolder.html"], + \["PolicyFactory", "org/omg/PortableInterceptor/PolicyFactory.html"], + \["PolicyFactoryOperations", "org/omg/PortableInterceptor/PolicyFactoryOperations.html"], + \["PolicyHelper", "org/omg/CORBA/PolicyHelper.html"], + \["PolicyHolder", "org/omg/CORBA/PolicyHolder.html"], + \["PolicyListHelper", "org/omg/CORBA/PolicyListHelper.html"], + \["PolicyListHolder", "org/omg/CORBA/PolicyListHolder.html"], + \["PolicyNode", "java/security/cert/PolicyNode.html"], + \["PolicyOperations", "org/omg/CORBA/PolicyOperations.html"], + \["PolicyQualifierInfo", "java/security/cert/PolicyQualifierInfo.html"], + \["PolicySpi", "java/security/PolicySpi.html"], + \["PolicyTypeHelper", "org/omg/CORBA/PolicyTypeHelper.html"], + \["Polygon", "java/awt/Polygon.html"], + \["PooledConnection", "javax/sql/PooledConnection.html"], + \["Popup", "javax/swing/Popup.html"], + \["PopupFactory", "javax/swing/PopupFactory.html"], + \["PopupMenu", "java/awt/PopupMenu.html"], + \["PopupMenuEvent", "javax/swing/event/PopupMenuEvent.html"], + \["PopupMenuListener", "javax/swing/event/PopupMenuListener.html"], + \["PopupMenuUI", "javax/swing/plaf/PopupMenuUI.html"], + \["Port", "javax/sound/sampled/Port.html"], + \["Port.Info", "javax/sound/sampled/Port.Info.html"], + \["PortableRemoteObject", "javax/rmi/PortableRemoteObject.html"], + \["PortableRemoteObjectDelegate", "javax/rmi/CORBA/PortableRemoteObjectDelegate.html"], + \["PortInfo", "javax/xml/ws/handler/PortInfo.html"], + \["PortUnreachableException", "java/net/PortUnreachableException.html"], + \["Position", "javax/swing/text/Position.html"], + \["Position.Bias", "javax/swing/text/Position.Bias.html"], + \["PostConstruct", "javax/annotation/PostConstruct.html"], + \["PreDestroy", "javax/annotation/PreDestroy.html"], + \["Predicate", "javax/sql/rowset/Predicate.html"], + \["PreferenceChangeEvent", "java/util/prefs/PreferenceChangeEvent.html"], + \["PreferenceChangeListener", "java/util/prefs/PreferenceChangeListener.html"], + \["Preferences", "java/util/prefs/Preferences.html"], + \["PreferencesFactory", "java/util/prefs/PreferencesFactory.html"], + \["PreparedStatement", "java/sql/PreparedStatement.html"], + \["PresentationDirection", "javax/print/attribute/standard/PresentationDirection.html"], + \["PrimitiveType", "javax/lang/model/type/PrimitiveType.html"], + \["Principal", "java/security/Principal.html"], + \["Principal", "org/omg/CORBA/Principal.html"], + \["PrincipalHolder", "org/omg/CORBA/PrincipalHolder.html"], + \["Printable", "java/awt/print/Printable.html"], + \["PrintConversionEvent", "javax/xml/bind/PrintConversionEvent.html"], + \["PrintConversionEventImpl", "javax/xml/bind/helpers/PrintConversionEventImpl.html"], + \["PrinterAbortException", "java/awt/print/PrinterAbortException.html"], + \["PrinterException", "java/awt/print/PrinterException.html"], + \["PrinterGraphics", "java/awt/print/PrinterGraphics.html"], + \["PrinterInfo", "javax/print/attribute/standard/PrinterInfo.html"], + \["PrinterIOException", "java/awt/print/PrinterIOException.html"], + \["PrinterIsAcceptingJobs", "javax/print/attribute/standard/PrinterIsAcceptingJobs.html"], + \["PrinterJob", "java/awt/print/PrinterJob.html"], + \["PrinterLocation", "javax/print/attribute/standard/PrinterLocation.html"], + \["PrinterMakeAndModel", "javax/print/attribute/standard/PrinterMakeAndModel.html"], + \["PrinterMessageFromOperator", "javax/print/attribute/standard/PrinterMessageFromOperator.html"], + \["PrinterMoreInfo", "javax/print/attribute/standard/PrinterMoreInfo.html"], + \["PrinterMoreInfoManufacturer", "javax/print/attribute/standard/PrinterMoreInfoManufacturer.html"], + \["PrinterName", "javax/print/attribute/standard/PrinterName.html"], + \["PrinterResolution", "javax/print/attribute/standard/PrinterResolution.html"], + \["PrinterState", "javax/print/attribute/standard/PrinterState.html"], + \["PrinterStateReason", "javax/print/attribute/standard/PrinterStateReason.html"], + \["PrinterStateReasons", "javax/print/attribute/standard/PrinterStateReasons.html"], + \["PrinterURI", "javax/print/attribute/standard/PrinterURI.html"], + \["PrintEvent", "javax/print/event/PrintEvent.html"], + \["PrintException", "javax/print/PrintException.html"], + \["PrintGraphics", "java/awt/PrintGraphics.html"], + \["PrintJob", "java/awt/PrintJob.html"], + \["PrintJobAdapter", "javax/print/event/PrintJobAdapter.html"], + \["PrintJobAttribute", "javax/print/attribute/PrintJobAttribute.html"], + \["PrintJobAttributeEvent", "javax/print/event/PrintJobAttributeEvent.html"], + \["PrintJobAttributeListener", "javax/print/event/PrintJobAttributeListener.html"], + \["PrintJobAttributeSet", "javax/print/attribute/PrintJobAttributeSet.html"], + \["PrintJobEvent", "javax/print/event/PrintJobEvent.html"], + \["PrintJobListener", "javax/print/event/PrintJobListener.html"], + \["PrintQuality", "javax/print/attribute/standard/PrintQuality.html"], + \["PrintRequestAttribute", "javax/print/attribute/PrintRequestAttribute.html"], + \["PrintRequestAttributeSet", "javax/print/attribute/PrintRequestAttributeSet.html"], + \["PrintService", "javax/print/PrintService.html"], + \["PrintServiceAttribute", "javax/print/attribute/PrintServiceAttribute.html"], + \["PrintServiceAttributeEvent", "javax/print/event/PrintServiceAttributeEvent.html"], + \["PrintServiceAttributeListener", "javax/print/event/PrintServiceAttributeListener.html"], + \["PrintServiceAttributeSet", "javax/print/attribute/PrintServiceAttributeSet.html"], + \["PrintServiceLookup", "javax/print/PrintServiceLookup.html"], + \["PrintStream", "java/io/PrintStream.html"], + \["PrintWriter", "java/io/PrintWriter.html"], + \["PriorityBlockingQueue", "java/util/concurrent/PriorityBlockingQueue.html"], + \["PriorityQueue", "java/util/PriorityQueue.html"], + \["PRIVATE_MEMBER", "org/omg/CORBA/PRIVATE_MEMBER.html"], + \["PrivateClassLoader", "javax/management/loading/PrivateClassLoader.html"], + \["PrivateCredentialPermission", "javax/security/auth/PrivateCredentialPermission.html"], + \["PrivateKey", "java/security/PrivateKey.html"], + \["PrivateMLet", "javax/management/loading/PrivateMLet.html"], + \["PrivilegedAction", "java/security/PrivilegedAction.html"], + \["PrivilegedActionException", "java/security/PrivilegedActionException.html"], + \["PrivilegedExceptionAction", "java/security/PrivilegedExceptionAction.html"], + \["Process", "java/lang/Process.html"], + \["ProcessBuilder", "java/lang/ProcessBuilder.html"], + \["ProcessingEnvironment", "javax/annotation/processing/ProcessingEnvironment.html"], + \["ProcessingInstruction", "javax/xml/stream/events/ProcessingInstruction.html"], + \["ProcessingInstruction", "org/w3c/dom/ProcessingInstruction.html"], + \["Processor", "javax/annotation/processing/Processor.html"], + \["ProfileDataException", "java/awt/color/ProfileDataException.html"], + \["ProfileIdHelper", "org/omg/IOP/ProfileIdHelper.html"], + \["ProgressBarUI", "javax/swing/plaf/ProgressBarUI.html"], + \["ProgressMonitor", "javax/swing/ProgressMonitor.html"], + \["ProgressMonitorInputStream", "javax/swing/ProgressMonitorInputStream.html"], + \["Properties", "java/util/Properties.html"], + \["PropertyChangeEvent", "java/beans/PropertyChangeEvent.html"], + \["PropertyChangeListener", "java/beans/PropertyChangeListener.html"], + \["PropertyChangeListenerProxy", "java/beans/PropertyChangeListenerProxy.html"], + \["PropertyChangeSupport", "java/beans/PropertyChangeSupport.html"], + \["PropertyDescriptor", "java/beans/PropertyDescriptor.html"], + \["PropertyEditor", "java/beans/PropertyEditor.html"], + \["PropertyEditorManager", "java/beans/PropertyEditorManager.html"], + \["PropertyEditorSupport", "java/beans/PropertyEditorSupport.html"], + \["PropertyException", "javax/xml/bind/PropertyException.html"], + \["PropertyPermission", "java/util/PropertyPermission.html"], + \["PropertyResourceBundle", "java/util/PropertyResourceBundle.html"], + \["PropertyVetoException", "java/beans/PropertyVetoException.html"], + \["ProtectionDomain", "java/security/ProtectionDomain.html"], + \["ProtocolException", "java/net/ProtocolException.html"], + \["ProtocolException", "javax/xml/ws/ProtocolException.html"], + \["Provider", "java/security/Provider.html"], + \["Provider", "javax/xml/ws/Provider.html"], + \["Provider", "javax/xml/ws/spi/Provider.html"], + \["Provider.Service", "java/security/Provider.Service.html"], + \["ProviderException", "java/security/ProviderException.html"], + \["Proxy", "java/lang/reflect/Proxy.html"], + \["Proxy", "java/net/Proxy.html"], + \["Proxy.Type", "java/net/Proxy.Type.html"], + \["ProxySelector", "java/net/ProxySelector.html"], + \["PSource", "javax/crypto/spec/PSource.html"], + \["PSource.PSpecified", "javax/crypto/spec/PSource.PSpecified.html"], + \["PSSParameterSpec", "java/security/spec/PSSParameterSpec.html"], + \["PUBLIC_MEMBER", "org/omg/CORBA/PUBLIC_MEMBER.html"], + \["PublicKey", "java/security/PublicKey.html"], + \["PushbackInputStream", "java/io/PushbackInputStream.html"], + \["PushbackReader", "java/io/PushbackReader.html"], + \["QName", "javax/xml/namespace/QName.html"], + \["QuadCurve2D", "java/awt/geom/QuadCurve2D.html"], + \["QuadCurve2D.Double", "java/awt/geom/QuadCurve2D.Double.html"], + \["QuadCurve2D.Float", "java/awt/geom/QuadCurve2D.Float.html"], + \["Query", "javax/management/Query.html"], + \["QueryEval", "javax/management/QueryEval.html"], + \["QueryExp", "javax/management/QueryExp.html"], + \["Queue", "java/util/Queue.html"], + \["QueuedJobCount", "javax/print/attribute/standard/QueuedJobCount.html"], + \["RadialGradientPaint", "java/awt/RadialGradientPaint.html"], + \["Random", "java/util/Random.html"], + \["RandomAccess", "java/util/RandomAccess.html"], + \["RandomAccessFile", "java/io/RandomAccessFile.html"], + \["Raster", "java/awt/image/Raster.html"], + \["RasterFormatException", "java/awt/image/RasterFormatException.html"], + \["RasterOp", "java/awt/image/RasterOp.html"], + \["RC2ParameterSpec", "javax/crypto/spec/RC2ParameterSpec.html"], + \["RC5ParameterSpec", "javax/crypto/spec/RC5ParameterSpec.html"], + \["Rdn", "javax/naming/ldap/Rdn.html"], + \["Readable", "java/lang/Readable.html"], + \["ReadableByteChannel", "java/nio/channels/ReadableByteChannel.html"], + \["Reader", "java/io/Reader.html"], + \["ReadOnlyBufferException", "java/nio/ReadOnlyBufferException.html"], + \["ReadWriteLock", "java/util/concurrent/locks/ReadWriteLock.html"], + \["RealmCallback", "javax/security/sasl/RealmCallback.html"], + \["RealmChoiceCallback", "javax/security/sasl/RealmChoiceCallback.html"], + \["REBIND", "org/omg/CORBA/REBIND.html"], + \["Receiver", "javax/sound/midi/Receiver.html"], + \["Rectangle", "java/awt/Rectangle.html"], + \["Rectangle2D", "java/awt/geom/Rectangle2D.html"], + \["Rectangle2D.Double", "java/awt/geom/Rectangle2D.Double.html"], + \["Rectangle2D.Float", "java/awt/geom/Rectangle2D.Float.html"], + \["RectangularShape", "java/awt/geom/RectangularShape.html"], + \["ReentrantLock", "java/util/concurrent/locks/ReentrantLock.html"], + \["ReentrantReadWriteLock", "java/util/concurrent/locks/ReentrantReadWriteLock.html"], + \["ReentrantReadWriteLock.ReadLock", "java/util/concurrent/locks/ReentrantReadWriteLock.ReadLock.html"], + \["ReentrantReadWriteLock.WriteLock", "java/util/concurrent/locks/ReentrantReadWriteLock.WriteLock.html"], + \["Ref", "java/sql/Ref.html"], + \["RefAddr", "javax/naming/RefAddr.html"], + \["Reference", "java/lang/ref/Reference.html"], + \["Reference", "javax/naming/Reference.html"], + \["Reference", "javax/xml/crypto/dsig/Reference.html"], + \["Referenceable", "javax/naming/Referenceable.html"], + \["ReferenceQueue", "java/lang/ref/ReferenceQueue.html"], + \["ReferenceType", "javax/lang/model/type/ReferenceType.html"], + \["ReferenceUriSchemesSupported", "javax/print/attribute/standard/ReferenceUriSchemesSupported.html"], + \["ReferralException", "javax/naming/ReferralException.html"], + \["ReflectionException", "javax/management/ReflectionException.html"], + \["ReflectPermission", "java/lang/reflect/ReflectPermission.html"], + \["Refreshable", "javax/security/auth/Refreshable.html"], + \["RefreshFailedException", "javax/security/auth/RefreshFailedException.html"], + \["Region", "javax/swing/plaf/synth/Region.html"], + \["RegisterableService", "javax/imageio/spi/RegisterableService.html"], + \["Registry", "java/rmi/registry/Registry.html"], + \["RegistryHandler", "java/rmi/registry/RegistryHandler.html"], + \["RejectedExecutionException", "java/util/concurrent/RejectedExecutionException.html"], + \["RejectedExecutionHandler", "java/util/concurrent/RejectedExecutionHandler.html"], + \["Relation", "javax/management/relation/Relation.html"], + \["RelationException", "javax/management/relation/RelationException.html"], + \["RelationNotFoundException", "javax/management/relation/RelationNotFoundException.html"], + \["RelationNotification", "javax/management/relation/RelationNotification.html"], + \["RelationService", "javax/management/relation/RelationService.html"], + \["RelationServiceMBean", "javax/management/relation/RelationServiceMBean.html"], + \["RelationServiceNotRegisteredException", "javax/management/relation/RelationServiceNotRegisteredException.html"], + \["RelationSupport", "javax/management/relation/RelationSupport.html"], + \["RelationSupportMBean", "javax/management/relation/RelationSupportMBean.html"], + \["RelationType", "javax/management/relation/RelationType.html"], + \["RelationTypeNotFoundException", "javax/management/relation/RelationTypeNotFoundException.html"], + \["RelationTypeSupport", "javax/management/relation/RelationTypeSupport.html"], + \["RemarshalException", "org/omg/CORBA/portable/RemarshalException.html"], + \["Remote", "java/rmi/Remote.html"], + \["RemoteCall", "java/rmi/server/RemoteCall.html"], + \["RemoteException", "java/rmi/RemoteException.html"], + \["RemoteObject", "java/rmi/server/RemoteObject.html"], + \["RemoteObjectInvocationHandler", "java/rmi/server/RemoteObjectInvocationHandler.html"], + \["RemoteRef", "java/rmi/server/RemoteRef.html"], + \["RemoteServer", "java/rmi/server/RemoteServer.html"], + \["RemoteStub", "java/rmi/server/RemoteStub.html"], + \["RenderableImage", "java/awt/image/renderable/RenderableImage.html"], + \["RenderableImageOp", "java/awt/image/renderable/RenderableImageOp.html"], + \["RenderableImageProducer", "java/awt/image/renderable/RenderableImageProducer.html"], + \["RenderContext", "java/awt/image/renderable/RenderContext.html"], + \["RenderedImage", "java/awt/image/RenderedImage.html"], + \["RenderedImageFactory", "java/awt/image/renderable/RenderedImageFactory.html"], + \["Renderer", "javax/swing/Renderer.html"], + \["RenderingHints", "java/awt/RenderingHints.html"], + \["RenderingHints.Key", "java/awt/RenderingHints.Key.html"], + \["RepaintManager", "javax/swing/RepaintManager.html"], + \["ReplicateScaleFilter", "java/awt/image/ReplicateScaleFilter.html"], + \["RepositoryIdHelper", "org/omg/CORBA/RepositoryIdHelper.html"], + \["Request", "org/omg/CORBA/Request.html"], + \["REQUEST_PROCESSING_POLICY_ID", "org/omg/PortableServer/REQUEST_PROCESSING_POLICY_ID.html"], + \["RequestInfo", "org/omg/PortableInterceptor/RequestInfo.html"], + \["RequestInfoOperations", "org/omg/PortableInterceptor/RequestInfoOperations.html"], + \["RequestingUserName", "javax/print/attribute/standard/RequestingUserName.html"], + \["RequestProcessingPolicy", "org/omg/PortableServer/RequestProcessingPolicy.html"], + \["RequestProcessingPolicyOperations", "org/omg/PortableServer/RequestProcessingPolicyOperations.html"], + \["RequestProcessingPolicyValue", "org/omg/PortableServer/RequestProcessingPolicyValue.html"], + \["RequestWrapper", "javax/xml/ws/RequestWrapper.html"], + \["RequiredModelMBean", "javax/management/modelmbean/RequiredModelMBean.html"], + \["RescaleOp", "java/awt/image/RescaleOp.html"], + \["ResolutionSyntax", "javax/print/attribute/ResolutionSyntax.html"], + \["Resolver", "javax/naming/spi/Resolver.html"], + \["ResolveResult", "javax/naming/spi/ResolveResult.html"], + \["Resource", "javax/annotation/Resource.html"], + \["Resource.AuthenticationType", "javax/annotation/Resource.AuthenticationType.html"], + \["ResourceBundle", "java/util/ResourceBundle.html"], + \["ResourceBundle.Control", "java/util/ResourceBundle.Control.html"], + \["Resources", "javax/annotation/Resources.html"], + \["RespectBinding", "javax/xml/ws/RespectBinding.html"], + \["RespectBindingFeature", "javax/xml/ws/RespectBindingFeature.html"], + \["Response", "javax/xml/ws/Response.html"], + \["ResponseCache", "java/net/ResponseCache.html"], + \["ResponseHandler", "org/omg/CORBA/portable/ResponseHandler.html"], + \["ResponseWrapper", "javax/xml/ws/ResponseWrapper.html"], + \["Result", "javax/xml/transform/Result.html"], + \["ResultSet", "java/sql/ResultSet.html"], + \["ResultSetMetaData", "java/sql/ResultSetMetaData.html"], + \["Retention", "java/lang/annotation/Retention.html"], + \["RetentionPolicy", "java/lang/annotation/RetentionPolicy.html"], + \["RetrievalMethod", "javax/xml/crypto/dsig/keyinfo/RetrievalMethod.html"], + \["ReverbType", "javax/sound/sampled/ReverbType.html"], + \["RGBImageFilter", "java/awt/image/RGBImageFilter.html"], + \["RMIClassLoader", "java/rmi/server/RMIClassLoader.html"], + \["RMIClassLoaderSpi", "java/rmi/server/RMIClassLoaderSpi.html"], + \["RMIClientSocketFactory", "java/rmi/server/RMIClientSocketFactory.html"], + \["RMIConnection", "javax/management/remote/rmi/RMIConnection.html"], + \["RMIConnectionImpl", "javax/management/remote/rmi/RMIConnectionImpl.html"], + \["RMIConnectionImpl_Stub", "javax/management/remote/rmi/RMIConnectionImpl_Stub.html"], + \["RMIConnector", "javax/management/remote/rmi/RMIConnector.html"], + \["RMIConnectorServer", "javax/management/remote/rmi/RMIConnectorServer.html"], + \["RMICustomMaxStreamFormat", "org/omg/IOP/RMICustomMaxStreamFormat.html"], + \["RMIFailureHandler", "java/rmi/server/RMIFailureHandler.html"], + \["RMIIIOPServerImpl", "javax/management/remote/rmi/RMIIIOPServerImpl.html"], + \["RMIJRMPServerImpl", "javax/management/remote/rmi/RMIJRMPServerImpl.html"], + \["RMISecurityException", "java/rmi/RMISecurityException.html"], + \["RMISecurityManager", "java/rmi/RMISecurityManager.html"], + \["RMIServer", "javax/management/remote/rmi/RMIServer.html"], + \["RMIServerImpl", "javax/management/remote/rmi/RMIServerImpl.html"], + \["RMIServerImpl_Stub", "javax/management/remote/rmi/RMIServerImpl_Stub.html"], + \["RMIServerSocketFactory", "java/rmi/server/RMIServerSocketFactory.html"], + \["RMISocketFactory", "java/rmi/server/RMISocketFactory.html"], + \["Robot", "java/awt/Robot.html"], + \["Role", "javax/management/relation/Role.html"], + \["RoleInfo", "javax/management/relation/RoleInfo.html"], + \["RoleInfoNotFoundException", "javax/management/relation/RoleInfoNotFoundException.html"], + \["RoleList", "javax/management/relation/RoleList.html"], + \["RoleNotFoundException", "javax/management/relation/RoleNotFoundException.html"], + \["RoleResult", "javax/management/relation/RoleResult.html"], + \["RoleStatus", "javax/management/relation/RoleStatus.html"], + \["RoleUnresolved", "javax/management/relation/RoleUnresolved.html"], + \["RoleUnresolvedList", "javax/management/relation/RoleUnresolvedList.html"], + \["RootPaneContainer", "javax/swing/RootPaneContainer.html"], + \["RootPaneUI", "javax/swing/plaf/RootPaneUI.html"], + \["RoundEnvironment", "javax/annotation/processing/RoundEnvironment.html"], + \["RoundingMode", "java/math/RoundingMode.html"], + \["RoundRectangle2D", "java/awt/geom/RoundRectangle2D.html"], + \["RoundRectangle2D.Double", "java/awt/geom/RoundRectangle2D.Double.html"], + \["RoundRectangle2D.Float", "java/awt/geom/RoundRectangle2D.Float.html"], + \["RowFilter", "javax/swing/RowFilter.html"], + \["RowFilter.ComparisonType", "javax/swing/RowFilter.ComparisonType.html"], + \["RowFilter.Entry", "javax/swing/RowFilter.Entry.html"], + \["RowId", "java/sql/RowId.html"], + \["RowIdLifetime", "java/sql/RowIdLifetime.html"], + \["RowMapper", "javax/swing/tree/RowMapper.html"], + \["RowSet", "javax/sql/RowSet.html"], + \["RowSetEvent", "javax/sql/RowSetEvent.html"], + \["RowSetInternal", "javax/sql/RowSetInternal.html"], + \["RowSetListener", "javax/sql/RowSetListener.html"], + \["RowSetMetaData", "javax/sql/RowSetMetaData.html"], + \["RowSetMetaDataImpl", "javax/sql/rowset/RowSetMetaDataImpl.html"], + \["RowSetReader", "javax/sql/RowSetReader.html"], + \["RowSetWarning", "javax/sql/rowset/RowSetWarning.html"], + \["RowSetWriter", "javax/sql/RowSetWriter.html"], + \["RowSorter", "javax/swing/RowSorter.html"], + \["RowSorter.SortKey", "javax/swing/RowSorter.SortKey.html"], + \["RowSorterEvent", "javax/swing/event/RowSorterEvent.html"], + \["RowSorterEvent.Type", "javax/swing/event/RowSorterEvent.Type.html"], + \["RowSorterListener", "javax/swing/event/RowSorterListener.html"], + \["RSAKey", "java/security/interfaces/RSAKey.html"], + \["RSAKeyGenParameterSpec", "java/security/spec/RSAKeyGenParameterSpec.html"], + \["RSAMultiPrimePrivateCrtKey", "java/security/interfaces/RSAMultiPrimePrivateCrtKey.html"], + \["RSAMultiPrimePrivateCrtKeySpec", "java/security/spec/RSAMultiPrimePrivateCrtKeySpec.html"], + \["RSAOtherPrimeInfo", "java/security/spec/RSAOtherPrimeInfo.html"], + \["RSAPrivateCrtKey", "java/security/interfaces/RSAPrivateCrtKey.html"], + \["RSAPrivateCrtKeySpec", "java/security/spec/RSAPrivateCrtKeySpec.html"], + \["RSAPrivateKey", "java/security/interfaces/RSAPrivateKey.html"], + \["RSAPrivateKeySpec", "java/security/spec/RSAPrivateKeySpec.html"], + \["RSAPublicKey", "java/security/interfaces/RSAPublicKey.html"], + \["RSAPublicKeySpec", "java/security/spec/RSAPublicKeySpec.html"], + \["RTFEditorKit", "javax/swing/text/rtf/RTFEditorKit.html"], + \["RuleBasedCollator", "java/text/RuleBasedCollator.html"], + \["Runnable", "java/lang/Runnable.html"], + \["RunnableFuture", "java/util/concurrent/RunnableFuture.html"], + \["RunnableScheduledFuture", "java/util/concurrent/RunnableScheduledFuture.html"], + \["Runtime", "java/lang/Runtime.html"], + \["RunTime", "org/omg/SendingContext/RunTime.html"], + \["RuntimeErrorException", "javax/management/RuntimeErrorException.html"], + \["RuntimeException", "java/lang/RuntimeException.html"], + \["RuntimeMBeanException", "javax/management/RuntimeMBeanException.html"], + \["RuntimeMXBean", "java/lang/management/RuntimeMXBean.html"], + \["RunTimeOperations", "org/omg/SendingContext/RunTimeOperations.html"], + \["RuntimeOperationsException", "javax/management/RuntimeOperationsException.html"], + \["RuntimePermission", "java/lang/RuntimePermission.html"], + \["SAAJMetaFactory", "javax/xml/soap/SAAJMetaFactory.html"], + \["SAAJResult", "javax/xml/soap/SAAJResult.html"], + \["SampleModel", "java/awt/image/SampleModel.html"], + \["Sasl", "javax/security/sasl/Sasl.html"], + \["SaslClient", "javax/security/sasl/SaslClient.html"], + \["SaslClientFactory", "javax/security/sasl/SaslClientFactory.html"], + \["SaslException", "javax/security/sasl/SaslException.html"], + \["SaslServer", "javax/security/sasl/SaslServer.html"], + \["SaslServerFactory", "javax/security/sasl/SaslServerFactory.html"], + \["Savepoint", "java/sql/Savepoint.html"], + \["SAXException", "org/xml/sax/SAXException.html"], + \["SAXNotRecognizedException", "org/xml/sax/SAXNotRecognizedException.html"], + \["SAXNotSupportedException", "org/xml/sax/SAXNotSupportedException.html"], + \["SAXParseException", "org/xml/sax/SAXParseException.html"], + \["SAXParser", "javax/xml/parsers/SAXParser.html"], + \["SAXParserFactory", "javax/xml/parsers/SAXParserFactory.html"], + \["SAXResult", "javax/xml/transform/sax/SAXResult.html"], + \["SAXSource", "javax/xml/transform/sax/SAXSource.html"], + \["SAXTransformerFactory", "javax/xml/transform/sax/SAXTransformerFactory.html"], + \["Scanner", "java/util/Scanner.html"], + \["ScatteringByteChannel", "java/nio/channels/ScatteringByteChannel.html"], + \["ScheduledExecutorService", "java/util/concurrent/ScheduledExecutorService.html"], + \["ScheduledFuture", "java/util/concurrent/ScheduledFuture.html"], + \["ScheduledThreadPoolExecutor", "java/util/concurrent/ScheduledThreadPoolExecutor.html"], + \["Schema", "javax/xml/validation/Schema.html"], + \["SchemaFactory", "javax/xml/validation/SchemaFactory.html"], + \["SchemaFactoryLoader", "javax/xml/validation/SchemaFactoryLoader.html"], + \["SchemaOutputResolver", "javax/xml/bind/SchemaOutputResolver.html"], + \["SchemaViolationException", "javax/naming/directory/SchemaViolationException.html"], + \["ScriptContext", "javax/script/ScriptContext.html"], + \["ScriptEngine", "javax/script/ScriptEngine.html"], + \["ScriptEngineFactory", "javax/script/ScriptEngineFactory.html"], + \["ScriptEngineManager", "javax/script/ScriptEngineManager.html"], + \["ScriptException", "javax/script/ScriptException.html"], + \["Scrollable", "javax/swing/Scrollable.html"], + \["Scrollbar", "java/awt/Scrollbar.html"], + \["ScrollBarUI", "javax/swing/plaf/ScrollBarUI.html"], + \["ScrollPane", "java/awt/ScrollPane.html"], + \["ScrollPaneAdjustable", "java/awt/ScrollPaneAdjustable.html"], + \["ScrollPaneConstants", "javax/swing/ScrollPaneConstants.html"], + \["ScrollPaneLayout", "javax/swing/ScrollPaneLayout.html"], + \["ScrollPaneLayout.UIResource", "javax/swing/ScrollPaneLayout.UIResource.html"], + \["ScrollPaneUI", "javax/swing/plaf/ScrollPaneUI.html"], + \["SealedObject", "javax/crypto/SealedObject.html"], + \["SearchControls", "javax/naming/directory/SearchControls.html"], + \["SearchResult", "javax/naming/directory/SearchResult.html"], + \["SecretKey", "javax/crypto/SecretKey.html"], + \["SecretKeyFactory", "javax/crypto/SecretKeyFactory.html"], + \["SecretKeyFactorySpi", "javax/crypto/SecretKeyFactorySpi.html"], + \["SecretKeySpec", "javax/crypto/spec/SecretKeySpec.html"], + \["SecureCacheResponse", "java/net/SecureCacheResponse.html"], + \["SecureClassLoader", "java/security/SecureClassLoader.html"], + \["SecureRandom", "java/security/SecureRandom.html"], + \["SecureRandomSpi", "java/security/SecureRandomSpi.html"], + \["Security", "java/security/Security.html"], + \["SecurityException", "java/lang/SecurityException.html"], + \["SecurityManager", "java/lang/SecurityManager.html"], + \["SecurityPermission", "java/security/SecurityPermission.html"], + \["Segment", "javax/swing/text/Segment.html"], + \["SelectableChannel", "java/nio/channels/SelectableChannel.html"], + \["SelectionKey", "java/nio/channels/SelectionKey.html"], + \["Selector", "java/nio/channels/Selector.html"], + \["SelectorProvider", "java/nio/channels/spi/SelectorProvider.html"], + \["Semaphore", "java/util/concurrent/Semaphore.html"], + \["SeparatorUI", "javax/swing/plaf/SeparatorUI.html"], + \["Sequence", "javax/sound/midi/Sequence.html"], + \["SequenceInputStream", "java/io/SequenceInputStream.html"], + \["Sequencer", "javax/sound/midi/Sequencer.html"], + \["Sequencer.SyncMode", "javax/sound/midi/Sequencer.SyncMode.html"], + \["SerialArray", "javax/sql/rowset/serial/SerialArray.html"], + \["SerialBlob", "javax/sql/rowset/serial/SerialBlob.html"], + \["SerialClob", "javax/sql/rowset/serial/SerialClob.html"], + \["SerialDatalink", "javax/sql/rowset/serial/SerialDatalink.html"], + \["SerialException", "javax/sql/rowset/serial/SerialException.html"], + \["Serializable", "java/io/Serializable.html"], + \["SerializablePermission", "java/io/SerializablePermission.html"], + \["SerialJavaObject", "javax/sql/rowset/serial/SerialJavaObject.html"], + \["SerialRef", "javax/sql/rowset/serial/SerialRef.html"], + \["SerialStruct", "javax/sql/rowset/serial/SerialStruct.html"], + \["Servant", "org/omg/PortableServer/Servant.html"], + \["SERVANT_RETENTION_POLICY_ID", "org/omg/PortableServer/SERVANT_RETENTION_POLICY_ID.html"], + \["ServantActivator", "org/omg/PortableServer/ServantActivator.html"], + \["ServantActivatorHelper", "org/omg/PortableServer/ServantActivatorHelper.html"], + \["ServantActivatorOperations", "org/omg/PortableServer/ServantActivatorOperations.html"], + \["ServantActivatorPOA", "org/omg/PortableServer/ServantActivatorPOA.html"], + \["ServantAlreadyActive", "org/omg/PortableServer/POAPackage/ServantAlreadyActive.html"], + \["ServantAlreadyActiveHelper", "org/omg/PortableServer/POAPackage/ServantAlreadyActiveHelper.html"], + \["ServantLocator", "org/omg/PortableServer/ServantLocator.html"], + \["ServantLocatorHelper", "org/omg/PortableServer/ServantLocatorHelper.html"], + \["ServantLocatorOperations", "org/omg/PortableServer/ServantLocatorOperations.html"], + \["ServantLocatorPOA", "org/omg/PortableServer/ServantLocatorPOA.html"], + \["ServantManager", "org/omg/PortableServer/ServantManager.html"], + \["ServantManagerOperations", "org/omg/PortableServer/ServantManagerOperations.html"], + \["ServantNotActive", "org/omg/PortableServer/POAPackage/ServantNotActive.html"], + \["ServantNotActiveHelper", "org/omg/PortableServer/POAPackage/ServantNotActiveHelper.html"], + \["ServantObject", "org/omg/CORBA/portable/ServantObject.html"], + \["ServantRetentionPolicy", "org/omg/PortableServer/ServantRetentionPolicy.html"], + \["ServantRetentionPolicyOperations", "org/omg/PortableServer/ServantRetentionPolicyOperations.html"], + \["ServantRetentionPolicyValue", "org/omg/PortableServer/ServantRetentionPolicyValue.html"], + \["ServerCloneException", "java/rmi/server/ServerCloneException.html"], + \["ServerError", "java/rmi/ServerError.html"], + \["ServerException", "java/rmi/ServerException.html"], + \["ServerIdHelper", "org/omg/PortableInterceptor/ServerIdHelper.html"], + \["ServerNotActiveException", "java/rmi/server/ServerNotActiveException.html"], + \["ServerRef", "java/rmi/server/ServerRef.html"], + \["ServerRequest", "org/omg/CORBA/ServerRequest.html"], + \["ServerRequestInfo", "org/omg/PortableInterceptor/ServerRequestInfo.html"], + \["ServerRequestInfoOperations", "org/omg/PortableInterceptor/ServerRequestInfoOperations.html"], + \["ServerRequestInterceptor", "org/omg/PortableInterceptor/ServerRequestInterceptor.html"], + \["ServerRequestInterceptorOperations", "org/omg/PortableInterceptor/ServerRequestInterceptorOperations.html"], + \["ServerRuntimeException", "java/rmi/ServerRuntimeException.html"], + \["ServerSocket", "java/net/ServerSocket.html"], + \["ServerSocketChannel", "java/nio/channels/ServerSocketChannel.html"], + \["ServerSocketFactory", "javax/net/ServerSocketFactory.html"], + \["Service", "javax/xml/ws/Service.html"], + \["Service.Mode", "javax/xml/ws/Service.Mode.html"], + \["ServiceConfigurationError", "java/util/ServiceConfigurationError.html"], + \["ServiceContext", "org/omg/IOP/ServiceContext.html"], + \["ServiceContextHelper", "org/omg/IOP/ServiceContextHelper.html"], + \["ServiceContextHolder", "org/omg/IOP/ServiceContextHolder.html"], + \["ServiceContextListHelper", "org/omg/IOP/ServiceContextListHelper.html"], + \["ServiceContextListHolder", "org/omg/IOP/ServiceContextListHolder.html"], + \["ServiceDelegate", "javax/xml/ws/spi/ServiceDelegate.html"], + \["ServiceDetail", "org/omg/CORBA/ServiceDetail.html"], + \["ServiceDetailHelper", "org/omg/CORBA/ServiceDetailHelper.html"], + \["ServiceIdHelper", "org/omg/IOP/ServiceIdHelper.html"], + \["ServiceInformation", "org/omg/CORBA/ServiceInformation.html"], + \["ServiceInformationHelper", "org/omg/CORBA/ServiceInformationHelper.html"], + \["ServiceInformationHolder", "org/omg/CORBA/ServiceInformationHolder.html"], + \["ServiceLoader", "java/util/ServiceLoader.html"], + \["ServiceMode", "javax/xml/ws/ServiceMode.html"], + \["ServiceNotFoundException", "javax/management/ServiceNotFoundException.html"], + \["ServicePermission", "javax/security/auth/kerberos/ServicePermission.html"], + \["ServiceRegistry", "javax/imageio/spi/ServiceRegistry.html"], + \["ServiceRegistry.Filter", "javax/imageio/spi/ServiceRegistry.Filter.html"], + \["ServiceUI", "javax/print/ServiceUI.html"], + \["ServiceUIFactory", "javax/print/ServiceUIFactory.html"], + \["ServiceUnavailableException", "javax/naming/ServiceUnavailableException.html"], + \["Set", "java/util/Set.html"], + \["SetOfIntegerSyntax", "javax/print/attribute/SetOfIntegerSyntax.html"], + \["SetOverrideType", "org/omg/CORBA/SetOverrideType.html"], + \["SetOverrideTypeHelper", "org/omg/CORBA/SetOverrideTypeHelper.html"], + \["Severity", "javax/print/attribute/standard/Severity.html"], + \["Shape", "java/awt/Shape.html"], + \["ShapeGraphicAttribute", "java/awt/font/ShapeGraphicAttribute.html"], + \["SheetCollate", "javax/print/attribute/standard/SheetCollate.html"], + \["Short", "java/lang/Short.html"], + \["ShortBuffer", "java/nio/ShortBuffer.html"], + \["ShortBufferException", "javax/crypto/ShortBufferException.html"], + \["ShortHolder", "org/omg/CORBA/ShortHolder.html"], + \["ShortLookupTable", "java/awt/image/ShortLookupTable.html"], + \["ShortMessage", "javax/sound/midi/ShortMessage.html"], + \["ShortSeqHelper", "org/omg/CORBA/ShortSeqHelper.html"], + \["ShortSeqHolder", "org/omg/CORBA/ShortSeqHolder.html"], + \["Sides", "javax/print/attribute/standard/Sides.html"], + \["Signature", "java/security/Signature.html"], + \["SignatureException", "java/security/SignatureException.html"], + \["SignatureMethod", "javax/xml/crypto/dsig/SignatureMethod.html"], + \["SignatureMethodParameterSpec", "javax/xml/crypto/dsig/spec/SignatureMethodParameterSpec.html"], + \["SignatureProperties", "javax/xml/crypto/dsig/SignatureProperties.html"], + \["SignatureProperty", "javax/xml/crypto/dsig/SignatureProperty.html"], + \["SignatureSpi", "java/security/SignatureSpi.html"], + \["SignedInfo", "javax/xml/crypto/dsig/SignedInfo.html"], + \["SignedObject", "java/security/SignedObject.html"], + \["Signer", "java/security/Signer.html"], + \["SimpleAnnotationValueVisitor6", "javax/lang/model/util/SimpleAnnotationValueVisitor6.html"], + \["SimpleAttributeSet", "javax/swing/text/SimpleAttributeSet.html"], + \["SimpleBeanInfo", "java/beans/SimpleBeanInfo.html"], + \["SimpleBindings", "javax/script/SimpleBindings.html"], + \["SimpleDateFormat", "java/text/SimpleDateFormat.html"], + \["SimpleDoc", "javax/print/SimpleDoc.html"], + \["SimpleElementVisitor6", "javax/lang/model/util/SimpleElementVisitor6.html"], + \["SimpleFormatter", "java/util/logging/SimpleFormatter.html"], + \["SimpleJavaFileObject", "javax/tools/SimpleJavaFileObject.html"], + \["SimpleScriptContext", "javax/script/SimpleScriptContext.html"], + \["SimpleTimeZone", "java/util/SimpleTimeZone.html"], + \["SimpleType", "javax/management/openmbean/SimpleType.html"], + \["SimpleTypeVisitor6", "javax/lang/model/util/SimpleTypeVisitor6.html"], + \["SinglePixelPackedSampleModel", "java/awt/image/SinglePixelPackedSampleModel.html"], + \["SingleSelectionModel", "javax/swing/SingleSelectionModel.html"], + \["Size2DSyntax", "javax/print/attribute/Size2DSyntax.html"], + \["SizeLimitExceededException", "javax/naming/SizeLimitExceededException.html"], + \["SizeRequirements", "javax/swing/SizeRequirements.html"], + \["SizeSequence", "javax/swing/SizeSequence.html"], + \["Skeleton", "java/rmi/server/Skeleton.html"], + \["SkeletonMismatchException", "java/rmi/server/SkeletonMismatchException.html"], + \["SkeletonNotFoundException", "java/rmi/server/SkeletonNotFoundException.html"], + \["SliderUI", "javax/swing/plaf/SliderUI.html"], + \["SOAPBinding", "javax/jws/soap/SOAPBinding.html"], + \["SOAPBinding", "javax/xml/ws/soap/SOAPBinding.html"], + \["SOAPBinding.ParameterStyle", "javax/jws/soap/SOAPBinding.ParameterStyle.html"], + \["SOAPBinding.Style", "javax/jws/soap/SOAPBinding.Style.html"], + \["SOAPBinding.Use", "javax/jws/soap/SOAPBinding.Use.html"], + \["SOAPBody", "javax/xml/soap/SOAPBody.html"], + \["SOAPBodyElement", "javax/xml/soap/SOAPBodyElement.html"], + \["SOAPConnection", "javax/xml/soap/SOAPConnection.html"], + \["SOAPConnectionFactory", "javax/xml/soap/SOAPConnectionFactory.html"], + \["SOAPConstants", "javax/xml/soap/SOAPConstants.html"], + \["SOAPElement", "javax/xml/soap/SOAPElement.html"], + \["SOAPElementFactory", "javax/xml/soap/SOAPElementFactory.html"], + \["SOAPEnvelope", "javax/xml/soap/SOAPEnvelope.html"], + \["SOAPException", "javax/xml/soap/SOAPException.html"], + \["SOAPFactory", "javax/xml/soap/SOAPFactory.html"], + \["SOAPFault", "javax/xml/soap/SOAPFault.html"], + \["SOAPFaultElement", "javax/xml/soap/SOAPFaultElement.html"], + \["SOAPFaultException", "javax/xml/ws/soap/SOAPFaultException.html"], + \["SOAPHandler", "javax/xml/ws/handler/soap/SOAPHandler.html"], + \["SOAPHeader", "javax/xml/soap/SOAPHeader.html"], + \["SOAPHeaderElement", "javax/xml/soap/SOAPHeaderElement.html"], + \["SOAPMessage", "javax/xml/soap/SOAPMessage.html"], + \["SOAPMessageContext", "javax/xml/ws/handler/soap/SOAPMessageContext.html"], + \["SOAPMessageHandler", "javax/jws/soap/SOAPMessageHandler.html"], + \["SOAPMessageHandlers", "javax/jws/soap/SOAPMessageHandlers.html"], + \["SOAPPart", "javax/xml/soap/SOAPPart.html"], + \["Socket", "java/net/Socket.html"], + \["SocketAddress", "java/net/SocketAddress.html"], + \["SocketChannel", "java/nio/channels/SocketChannel.html"], + \["SocketException", "java/net/SocketException.html"], + \["SocketFactory", "javax/net/SocketFactory.html"], + \["SocketHandler", "java/util/logging/SocketHandler.html"], + \["SocketImpl", "java/net/SocketImpl.html"], + \["SocketImplFactory", "java/net/SocketImplFactory.html"], + \["SocketOptions", "java/net/SocketOptions.html"], + \["SocketPermission", "java/net/SocketPermission.html"], + \["SocketSecurityException", "java/rmi/server/SocketSecurityException.html"], + \["SocketTimeoutException", "java/net/SocketTimeoutException.html"], + \["SoftBevelBorder", "javax/swing/border/SoftBevelBorder.html"], + \["SoftReference", "java/lang/ref/SoftReference.html"], + \["SortControl", "javax/naming/ldap/SortControl.html"], + \["SortedMap", "java/util/SortedMap.html"], + \["SortedSet", "java/util/SortedSet.html"], + \["SortingFocusTraversalPolicy", "javax/swing/SortingFocusTraversalPolicy.html"], + \["SortKey", "javax/naming/ldap/SortKey.html"], + \["SortOrder", "javax/swing/SortOrder.html"], + \["SortResponseControl", "javax/naming/ldap/SortResponseControl.html"], + \["Soundbank", "javax/sound/midi/Soundbank.html"], + \["SoundbankReader", "javax/sound/midi/spi/SoundbankReader.html"], + \["SoundbankResource", "javax/sound/midi/SoundbankResource.html"], + \["Source", "javax/xml/transform/Source.html"], + \["SourceDataLine", "javax/sound/sampled/SourceDataLine.html"], + \["SourceLocator", "javax/xml/transform/SourceLocator.html"], + \["SourceVersion", "javax/lang/model/SourceVersion.html"], + \["SpinnerDateModel", "javax/swing/SpinnerDateModel.html"], + \["SpinnerListModel", "javax/swing/SpinnerListModel.html"], + \["SpinnerModel", "javax/swing/SpinnerModel.html"], + \["SpinnerNumberModel", "javax/swing/SpinnerNumberModel.html"], + \["SpinnerUI", "javax/swing/plaf/SpinnerUI.html"], + \["SplashScreen", "java/awt/SplashScreen.html"], + \["SplitPaneUI", "javax/swing/plaf/SplitPaneUI.html"], + \["Spring", "javax/swing/Spring.html"], + \["SpringLayout", "javax/swing/SpringLayout.html"], + \["SpringLayout.Constraints", "javax/swing/SpringLayout.Constraints.html"], + \["SQLClientInfoException", "java/sql/SQLClientInfoException.html"], + \["SQLData", "java/sql/SQLData.html"], + \["SQLDataException", "java/sql/SQLDataException.html"], + \["SQLException", "java/sql/SQLException.html"], + \["SQLFeatureNotSupportedException", "java/sql/SQLFeatureNotSupportedException.html"], + \["SQLInput", "java/sql/SQLInput.html"], + \["SQLInputImpl", "javax/sql/rowset/serial/SQLInputImpl.html"], + \["SQLIntegrityConstraintViolationException", "java/sql/SQLIntegrityConstraintViolationException.html"], + \["SQLInvalidAuthorizationSpecException", "java/sql/SQLInvalidAuthorizationSpecException.html"], + \["SQLNonTransientConnectionException", "java/sql/SQLNonTransientConnectionException.html"], + \["SQLNonTransientException", "java/sql/SQLNonTransientException.html"], + \["SQLOutput", "java/sql/SQLOutput.html"], + \["SQLOutputImpl", "javax/sql/rowset/serial/SQLOutputImpl.html"], + \["SQLPermission", "java/sql/SQLPermission.html"], + \["SQLRecoverableException", "java/sql/SQLRecoverableException.html"], + \["SQLSyntaxErrorException", "java/sql/SQLSyntaxErrorException.html"], + \["SQLTimeoutException", "java/sql/SQLTimeoutException.html"], + \["SQLTransactionRollbackException", "java/sql/SQLTransactionRollbackException.html"], + \["SQLTransientConnectionException", "java/sql/SQLTransientConnectionException.html"], + \["SQLTransientException", "java/sql/SQLTransientException.html"], + \["SQLWarning", "java/sql/SQLWarning.html"], + \["SQLXML", "java/sql/SQLXML.html"], + \["SSLContext", "javax/net/ssl/SSLContext.html"], + \["SSLContextSpi", "javax/net/ssl/SSLContextSpi.html"], + \["SSLEngine", "javax/net/ssl/SSLEngine.html"], + \["SSLEngineResult", "javax/net/ssl/SSLEngineResult.html"], + \["SSLEngineResult.HandshakeStatus", "javax/net/ssl/SSLEngineResult.HandshakeStatus.html"], + \["SSLEngineResult.Status", "javax/net/ssl/SSLEngineResult.Status.html"], + \["SSLException", "javax/net/ssl/SSLException.html"], + \["SSLHandshakeException", "javax/net/ssl/SSLHandshakeException.html"], + \["SSLKeyException", "javax/net/ssl/SSLKeyException.html"], + \["SSLParameters", "javax/net/ssl/SSLParameters.html"], + \["SSLPeerUnverifiedException", "javax/net/ssl/SSLPeerUnverifiedException.html"], + \["SSLPermission", "javax/net/ssl/SSLPermission.html"], + \["SSLProtocolException", "javax/net/ssl/SSLProtocolException.html"], + \["SslRMIClientSocketFactory", "javax/rmi/ssl/SslRMIClientSocketFactory.html"], + \["SslRMIServerSocketFactory", "javax/rmi/ssl/SslRMIServerSocketFactory.html"], + \["SSLServerSocket", "javax/net/ssl/SSLServerSocket.html"], + \["SSLServerSocketFactory", "javax/net/ssl/SSLServerSocketFactory.html"], + \["SSLSession", "javax/net/ssl/SSLSession.html"], + \["SSLSessionBindingEvent", "javax/net/ssl/SSLSessionBindingEvent.html"], + \["SSLSessionBindingListener", "javax/net/ssl/SSLSessionBindingListener.html"], + \["SSLSessionContext", "javax/net/ssl/SSLSessionContext.html"], + \["SSLSocket", "javax/net/ssl/SSLSocket.html"], + \["SSLSocketFactory", "javax/net/ssl/SSLSocketFactory.html"], + \["Stack", "java/util/Stack.html"], + \["StackOverflowError", "java/lang/StackOverflowError.html"], + \["StackTraceElement", "java/lang/StackTraceElement.html"], + \["StandardEmitterMBean", "javax/management/StandardEmitterMBean.html"], + \["StandardJavaFileManager", "javax/tools/StandardJavaFileManager.html"], + \["StandardLocation", "javax/tools/StandardLocation.html"], + \["StandardMBean", "javax/management/StandardMBean.html"], + \["StartDocument", "javax/xml/stream/events/StartDocument.html"], + \["StartElement", "javax/xml/stream/events/StartElement.html"], + \["StartTlsRequest", "javax/naming/ldap/StartTlsRequest.html"], + \["StartTlsResponse", "javax/naming/ldap/StartTlsResponse.html"], + \["State", "org/omg/PortableServer/POAManagerPackage/State.html"], + \["StateEdit", "javax/swing/undo/StateEdit.html"], + \["StateEditable", "javax/swing/undo/StateEditable.html"], + \["StateFactory", "javax/naming/spi/StateFactory.html"], + \["Statement", "java/beans/Statement.html"], + \["Statement", "java/sql/Statement.html"], + \["StatementEvent", "javax/sql/StatementEvent.html"], + \["StatementEventListener", "javax/sql/StatementEventListener.html"], + \["StAXResult", "javax/xml/transform/stax/StAXResult.html"], + \["StAXSource", "javax/xml/transform/stax/StAXSource.html"], + \["Streamable", "org/omg/CORBA/portable/Streamable.html"], + \["StreamableValue", "org/omg/CORBA/portable/StreamableValue.html"], + \["StreamCorruptedException", "java/io/StreamCorruptedException.html"], + \["StreamFilter", "javax/xml/stream/StreamFilter.html"], + \["StreamHandler", "java/util/logging/StreamHandler.html"], + \["StreamPrintService", "javax/print/StreamPrintService.html"], + \["StreamPrintServiceFactory", "javax/print/StreamPrintServiceFactory.html"], + \["StreamReaderDelegate", "javax/xml/stream/util/StreamReaderDelegate.html"], + \["StreamResult", "javax/xml/transform/stream/StreamResult.html"], + \["StreamSource", "javax/xml/transform/stream/StreamSource.html"], + \["StreamTokenizer", "java/io/StreamTokenizer.html"], + \["StrictMath", "java/lang/StrictMath.html"], + \["String", "java/lang/String.html"], + \["StringBuffer", "java/lang/StringBuffer.html"], + \["StringBufferInputStream", "java/io/StringBufferInputStream.html"], + \["StringBuilder", "java/lang/StringBuilder.html"], + \["StringCharacterIterator", "java/text/StringCharacterIterator.html"], + \["StringContent", "javax/swing/text/StringContent.html"], + \["StringHolder", "org/omg/CORBA/StringHolder.html"], + \["StringIndexOutOfBoundsException", "java/lang/StringIndexOutOfBoundsException.html"], + \["StringMonitor", "javax/management/monitor/StringMonitor.html"], + \["StringMonitorMBean", "javax/management/monitor/StringMonitorMBean.html"], + \["StringNameHelper", "org/omg/CosNaming/NamingContextExtPackage/StringNameHelper.html"], + \["StringReader", "java/io/StringReader.html"], + \["StringRefAddr", "javax/naming/StringRefAddr.html"], + \["StringSelection", "java/awt/datatransfer/StringSelection.html"], + \["StringSeqHelper", "org/omg/CORBA/StringSeqHelper.html"], + \["StringSeqHolder", "org/omg/CORBA/StringSeqHolder.html"], + \["StringTokenizer", "java/util/StringTokenizer.html"], + \["StringValueExp", "javax/management/StringValueExp.html"], + \["StringValueHelper", "org/omg/CORBA/StringValueHelper.html"], + \["StringWriter", "java/io/StringWriter.html"], + \["Stroke", "java/awt/Stroke.html"], + \["Struct", "java/sql/Struct.html"], + \["StructMember", "org/omg/CORBA/StructMember.html"], + \["StructMemberHelper", "org/omg/CORBA/StructMemberHelper.html"], + \["Stub", "javax/rmi/CORBA/Stub.html"], + \["StubDelegate", "javax/rmi/CORBA/StubDelegate.html"], + \["StubNotFoundException", "java/rmi/StubNotFoundException.html"], + \["Style", "javax/swing/text/Style.html"], + \["StyleConstants", "javax/swing/text/StyleConstants.html"], + \["StyleConstants.CharacterConstants", "javax/swing/text/StyleConstants.CharacterConstants.html"], + \["StyleConstants.ColorConstants", "javax/swing/text/StyleConstants.ColorConstants.html"], + \["StyleConstants.FontConstants", "javax/swing/text/StyleConstants.FontConstants.html"], + \["StyleConstants.ParagraphConstants", "javax/swing/text/StyleConstants.ParagraphConstants.html"], + \["StyleContext", "javax/swing/text/StyleContext.html"], + \["StyledDocument", "javax/swing/text/StyledDocument.html"], + \["StyledEditorKit", "javax/swing/text/StyledEditorKit.html"], + \["StyledEditorKit.AlignmentAction", "javax/swing/text/StyledEditorKit.AlignmentAction.html"], + \["StyledEditorKit.BoldAction", "javax/swing/text/StyledEditorKit.BoldAction.html"], + \["StyledEditorKit.FontFamilyAction", "javax/swing/text/StyledEditorKit.FontFamilyAction.html"], + \["StyledEditorKit.FontSizeAction", "javax/swing/text/StyledEditorKit.FontSizeAction.html"], + \["StyledEditorKit.ForegroundAction", "javax/swing/text/StyledEditorKit.ForegroundAction.html"], + \["StyledEditorKit.ItalicAction", "javax/swing/text/StyledEditorKit.ItalicAction.html"], + \["StyledEditorKit.StyledTextAction", "javax/swing/text/StyledEditorKit.StyledTextAction.html"], + \["StyledEditorKit.UnderlineAction", "javax/swing/text/StyledEditorKit.UnderlineAction.html"], + \["StyleSheet", "javax/swing/text/html/StyleSheet.html"], + \["StyleSheet.BoxPainter", "javax/swing/text/html/StyleSheet.BoxPainter.html"], + \["StyleSheet.ListPainter", "javax/swing/text/html/StyleSheet.ListPainter.html"], + \["Subject", "javax/security/auth/Subject.html"], + \["SubjectDelegationPermission", "javax/management/remote/SubjectDelegationPermission.html"], + \["SubjectDomainCombiner", "javax/security/auth/SubjectDomainCombiner.html"], + \["SUCCESSFUL", "org/omg/PortableInterceptor/SUCCESSFUL.html"], + \["SupportedAnnotationTypes", "javax/annotation/processing/SupportedAnnotationTypes.html"], + \["SupportedOptions", "javax/annotation/processing/SupportedOptions.html"], + \["SupportedSourceVersion", "javax/annotation/processing/SupportedSourceVersion.html"], + \["SupportedValuesAttribute", "javax/print/attribute/SupportedValuesAttribute.html"], + \["SuppressWarnings", "java/lang/SuppressWarnings.html"], + \["SwingConstants", "javax/swing/SwingConstants.html"], + \["SwingPropertyChangeSupport", "javax/swing/event/SwingPropertyChangeSupport.html"], + \["SwingUtilities", "javax/swing/SwingUtilities.html"], + \["SwingWorker", "javax/swing/SwingWorker.html"], + \["SwingWorker.StateValue", "javax/swing/SwingWorker.StateValue.html"], + \["SYNC_WITH_TRANSPORT", "org/omg/Messaging/SYNC_WITH_TRANSPORT.html"], + \["SyncFactory", "javax/sql/rowset/spi/SyncFactory.html"], + \["SyncFactoryException", "javax/sql/rowset/spi/SyncFactoryException.html"], + \["SyncFailedException", "java/io/SyncFailedException.html"], + \["SynchronousQueue", "java/util/concurrent/SynchronousQueue.html"], + \["SyncProvider", "javax/sql/rowset/spi/SyncProvider.html"], + \["SyncProviderException", "javax/sql/rowset/spi/SyncProviderException.html"], + \["SyncResolver", "javax/sql/rowset/spi/SyncResolver.html"], + \["SyncScopeHelper", "org/omg/Messaging/SyncScopeHelper.html"], + \["SynthConstants", "javax/swing/plaf/synth/SynthConstants.html"], + \["SynthContext", "javax/swing/plaf/synth/SynthContext.html"], + \["Synthesizer", "javax/sound/midi/Synthesizer.html"], + \["SynthGraphicsUtils", "javax/swing/plaf/synth/SynthGraphicsUtils.html"], + \["SynthLookAndFeel", "javax/swing/plaf/synth/SynthLookAndFeel.html"], + \["SynthPainter", "javax/swing/plaf/synth/SynthPainter.html"], + \["SynthStyle", "javax/swing/plaf/synth/SynthStyle.html"], + \["SynthStyleFactory", "javax/swing/plaf/synth/SynthStyleFactory.html"], + \["SysexMessage", "javax/sound/midi/SysexMessage.html"], + \["System", "java/lang/System.html"], + \["SYSTEM_EXCEPTION", "org/omg/PortableInterceptor/SYSTEM_EXCEPTION.html"], + \["SystemColor", "java/awt/SystemColor.html"], + \["SystemException", "org/omg/CORBA/SystemException.html"], + \["SystemFlavorMap", "java/awt/datatransfer/SystemFlavorMap.html"], + \["SystemTray", "java/awt/SystemTray.html"], + \["TabableView", "javax/swing/text/TabableView.html"], + \["TabbedPaneUI", "javax/swing/plaf/TabbedPaneUI.html"], + \["TabExpander", "javax/swing/text/TabExpander.html"], + \["TableCellEditor", "javax/swing/table/TableCellEditor.html"], + \["TableCellRenderer", "javax/swing/table/TableCellRenderer.html"], + \["TableColumn", "javax/swing/table/TableColumn.html"], + \["TableColumnModel", "javax/swing/table/TableColumnModel.html"], + \["TableColumnModelEvent", "javax/swing/event/TableColumnModelEvent.html"], + \["TableColumnModelListener", "javax/swing/event/TableColumnModelListener.html"], + \["TableHeaderUI", "javax/swing/plaf/TableHeaderUI.html"], + \["TableModel", "javax/swing/table/TableModel.html"], + \["TableModelEvent", "javax/swing/event/TableModelEvent.html"], + \["TableModelListener", "javax/swing/event/TableModelListener.html"], + \["TableRowSorter", "javax/swing/table/TableRowSorter.html"], + \["TableStringConverter", "javax/swing/table/TableStringConverter.html"], + \["TableUI", "javax/swing/plaf/TableUI.html"], + \["TableView", "javax/swing/text/TableView.html"], + \["TabSet", "javax/swing/text/TabSet.html"], + \["TabStop", "javax/swing/text/TabStop.html"], + \["TabularData", "javax/management/openmbean/TabularData.html"], + \["TabularDataSupport", "javax/management/openmbean/TabularDataSupport.html"], + \["TabularType", "javax/management/openmbean/TabularType.html"], + \["TAG_ALTERNATE_IIOP_ADDRESS", "org/omg/IOP/TAG_ALTERNATE_IIOP_ADDRESS.html"], + \["TAG_CODE_SETS", "org/omg/IOP/TAG_CODE_SETS.html"], + \["TAG_INTERNET_IOP", "org/omg/IOP/TAG_INTERNET_IOP.html"], + \["TAG_JAVA_CODEBASE", "org/omg/IOP/TAG_JAVA_CODEBASE.html"], + \["TAG_MULTIPLE_COMPONENTS", "org/omg/IOP/TAG_MULTIPLE_COMPONENTS.html"], + \["TAG_ORB_TYPE", "org/omg/IOP/TAG_ORB_TYPE.html"], + \["TAG_POLICIES", "org/omg/IOP/TAG_POLICIES.html"], + \["TAG_RMI_CUSTOM_MAX_STREAM_FORMAT", "org/omg/IOP/TAG_RMI_CUSTOM_MAX_STREAM_FORMAT.html"], + \["TagElement", "javax/swing/text/html/parser/TagElement.html"], + \["TaggedComponent", "org/omg/IOP/TaggedComponent.html"], + \["TaggedComponentHelper", "org/omg/IOP/TaggedComponentHelper.html"], + \["TaggedComponentHolder", "org/omg/IOP/TaggedComponentHolder.html"], + \["TaggedProfile", "org/omg/IOP/TaggedProfile.html"], + \["TaggedProfileHelper", "org/omg/IOP/TaggedProfileHelper.html"], + \["TaggedProfileHolder", "org/omg/IOP/TaggedProfileHolder.html"], + \["Target", "java/lang/annotation/Target.html"], + \["TargetDataLine", "javax/sound/sampled/TargetDataLine.html"], + \["TargetedNotification", "javax/management/remote/TargetedNotification.html"], + \["TCKind", "org/omg/CORBA/TCKind.html"], + \["Templates", "javax/xml/transform/Templates.html"], + \["TemplatesHandler", "javax/xml/transform/sax/TemplatesHandler.html"], + \["Text", "javax/xml/soap/Text.html"], + \["Text", "org/w3c/dom/Text.html"], + \["TextAction", "javax/swing/text/TextAction.html"], + \["TextArea", "java/awt/TextArea.html"], + \["TextAttribute", "java/awt/font/TextAttribute.html"], + \["TextComponent", "java/awt/TextComponent.html"], + \["TextEvent", "java/awt/event/TextEvent.html"], + \["TextField", "java/awt/TextField.html"], + \["TextHitInfo", "java/awt/font/TextHitInfo.html"], + \["TextInputCallback", "javax/security/auth/callback/TextInputCallback.html"], + \["TextLayout", "java/awt/font/TextLayout.html"], + \["TextLayout.CaretPolicy", "java/awt/font/TextLayout.CaretPolicy.html"], + \["TextListener", "java/awt/event/TextListener.html"], + \["TextMeasurer", "java/awt/font/TextMeasurer.html"], + \["TextOutputCallback", "javax/security/auth/callback/TextOutputCallback.html"], + \["TextSyntax", "javax/print/attribute/TextSyntax.html"], + \["TextUI", "javax/swing/plaf/TextUI.html"], + \["TexturePaint", "java/awt/TexturePaint.html"], + \["Thread", "java/lang/Thread.html"], + \["Thread.State", "java/lang/Thread.State.html"], + \["Thread.UncaughtExceptionHandler", "java/lang/Thread.UncaughtExceptionHandler.html"], + \["THREAD_POLICY_ID", "org/omg/PortableServer/THREAD_POLICY_ID.html"], + \["ThreadDeath", "java/lang/ThreadDeath.html"], + \["ThreadFactory", "java/util/concurrent/ThreadFactory.html"], + \["ThreadGroup", "java/lang/ThreadGroup.html"], + \["ThreadInfo", "java/lang/management/ThreadInfo.html"], + \["ThreadLocal", "java/lang/ThreadLocal.html"], + \["ThreadMXBean", "java/lang/management/ThreadMXBean.html"], + \["ThreadPolicy", "org/omg/PortableServer/ThreadPolicy.html"], + \["ThreadPolicyOperations", "org/omg/PortableServer/ThreadPolicyOperations.html"], + \["ThreadPolicyValue", "org/omg/PortableServer/ThreadPolicyValue.html"], + \["ThreadPoolExecutor", "java/util/concurrent/ThreadPoolExecutor.html"], + \["ThreadPoolExecutor.AbortPolicy", "java/util/concurrent/ThreadPoolExecutor.AbortPolicy.html"], + \["ThreadPoolExecutor.CallerRunsPolicy", "java/util/concurrent/ThreadPoolExecutor.CallerRunsPolicy.html"], + \["ThreadPoolExecutor.DiscardOldestPolicy", "java/util/concurrent/ThreadPoolExecutor.DiscardOldestPolicy.html"], + \["ThreadPoolExecutor.DiscardPolicy", "java/util/concurrent/ThreadPoolExecutor.DiscardPolicy.html"], + \["Throwable", "java/lang/Throwable.html"], + \["Tie", "javax/rmi/CORBA/Tie.html"], + \["TileObserver", "java/awt/image/TileObserver.html"], + \["Time", "java/sql/Time.html"], + \["TimeLimitExceededException", "javax/naming/TimeLimitExceededException.html"], + \["TIMEOUT", "org/omg/CORBA/TIMEOUT.html"], + \["TimeoutException", "java/util/concurrent/TimeoutException.html"], + \["Timer", "java/util/Timer.html"], + \["Timer", "javax/management/timer/Timer.html"], + \["Timer", "javax/swing/Timer.html"], + \["TimerMBean", "javax/management/timer/TimerMBean.html"], + \["TimerNotification", "javax/management/timer/TimerNotification.html"], + \["TimerTask", "java/util/TimerTask.html"], + \["Timestamp", "java/security/Timestamp.html"], + \["Timestamp", "java/sql/Timestamp.html"], + \["TimeUnit", "java/util/concurrent/TimeUnit.html"], + \["TimeZone", "java/util/TimeZone.html"], + \["TimeZoneNameProvider", "java/util/spi/TimeZoneNameProvider.html"], + \["TitledBorder", "javax/swing/border/TitledBorder.html"], + \["Tool", "javax/tools/Tool.html"], + \["ToolBarUI", "javax/swing/plaf/ToolBarUI.html"], + \["Toolkit", "java/awt/Toolkit.html"], + \["ToolProvider", "javax/tools/ToolProvider.html"], + \["ToolTipManager", "javax/swing/ToolTipManager.html"], + \["ToolTipUI", "javax/swing/plaf/ToolTipUI.html"], + \["TooManyListenersException", "java/util/TooManyListenersException.html"], + \["Track", "javax/sound/midi/Track.html"], + \["TRANSACTION_MODE", "org/omg/CORBA/TRANSACTION_MODE.html"], + \["TRANSACTION_REQUIRED", "org/omg/CORBA/TRANSACTION_REQUIRED.html"], + \["TRANSACTION_ROLLEDBACK", "org/omg/CORBA/TRANSACTION_ROLLEDBACK.html"], + \["TRANSACTION_UNAVAILABLE", "org/omg/CORBA/TRANSACTION_UNAVAILABLE.html"], + \["TransactionalWriter", "javax/sql/rowset/spi/TransactionalWriter.html"], + \["TransactionRequiredException", "javax/transaction/TransactionRequiredException.html"], + \["TransactionRolledbackException", "javax/transaction/TransactionRolledbackException.html"], + \["TransactionService", "org/omg/IOP/TransactionService.html"], + \["Transferable", "java/awt/datatransfer/Transferable.html"], + \["TransferHandler", "javax/swing/TransferHandler.html"], + \["TransferHandler.DropLocation", "javax/swing/TransferHandler.DropLocation.html"], + \["TransferHandler.TransferSupport", "javax/swing/TransferHandler.TransferSupport.html"], + \["Transform", "javax/xml/crypto/dsig/Transform.html"], + \["TransformAttribute", "java/awt/font/TransformAttribute.html"], + \["Transformer", "javax/xml/transform/Transformer.html"], + \["TransformerConfigurationException", "javax/xml/transform/TransformerConfigurationException.html"], + \["TransformerException", "javax/xml/transform/TransformerException.html"], + \["TransformerFactory", "javax/xml/transform/TransformerFactory.html"], + \["TransformerFactoryConfigurationError", "javax/xml/transform/TransformerFactoryConfigurationError.html"], + \["TransformerHandler", "javax/xml/transform/sax/TransformerHandler.html"], + \["TransformException", "javax/xml/crypto/dsig/TransformException.html"], + \["TransformParameterSpec", "javax/xml/crypto/dsig/spec/TransformParameterSpec.html"], + \["TransformService", "javax/xml/crypto/dsig/TransformService.html"], + \["TRANSIENT", "org/omg/CORBA/TRANSIENT.html"], + \["Transmitter", "javax/sound/midi/Transmitter.html"], + \["Transparency", "java/awt/Transparency.html"], + \["TRANSPORT_RETRY", "org/omg/PortableInterceptor/TRANSPORT_RETRY.html"], + \["TrayIcon", "java/awt/TrayIcon.html"], + \["TrayIcon.MessageType", "java/awt/TrayIcon.MessageType.html"], + \["TreeCellEditor", "javax/swing/tree/TreeCellEditor.html"], + \["TreeCellRenderer", "javax/swing/tree/TreeCellRenderer.html"], + \["TreeExpansionEvent", "javax/swing/event/TreeExpansionEvent.html"], + \["TreeExpansionListener", "javax/swing/event/TreeExpansionListener.html"], + \["TreeMap", "java/util/TreeMap.html"], + \["TreeModel", "javax/swing/tree/TreeModel.html"], + \["TreeModelEvent", "javax/swing/event/TreeModelEvent.html"], + \["TreeModelListener", "javax/swing/event/TreeModelListener.html"], + \["TreeNode", "javax/swing/tree/TreeNode.html"], + \["TreePath", "javax/swing/tree/TreePath.html"], + \["TreeSelectionEvent", "javax/swing/event/TreeSelectionEvent.html"], + \["TreeSelectionListener", "javax/swing/event/TreeSelectionListener.html"], + \["TreeSelectionModel", "javax/swing/tree/TreeSelectionModel.html"], + \["TreeSet", "java/util/TreeSet.html"], + \["TreeUI", "javax/swing/plaf/TreeUI.html"], + \["TreeWillExpandListener", "javax/swing/event/TreeWillExpandListener.html"], + \["TrustAnchor", "java/security/cert/TrustAnchor.html"], + \["TrustManager", "javax/net/ssl/TrustManager.html"], + \["TrustManagerFactory", "javax/net/ssl/TrustManagerFactory.html"], + \["TrustManagerFactorySpi", "javax/net/ssl/TrustManagerFactorySpi.html"], + \["Type", "java/lang/reflect/Type.html"], + \["TypeCode", "org/omg/CORBA/TypeCode.html"], + \["TypeCodeHolder", "org/omg/CORBA/TypeCodeHolder.html"], + \["TypeConstraintException", "javax/xml/bind/TypeConstraintException.html"], + \["TypeElement", "javax/lang/model/element/TypeElement.html"], + \["TypeInfo", "org/w3c/dom/TypeInfo.html"], + \["TypeInfoProvider", "javax/xml/validation/TypeInfoProvider.html"], + \["TypeKind", "javax/lang/model/type/TypeKind.html"], + \["TypeKindVisitor6", "javax/lang/model/util/TypeKindVisitor6.html"], + \["TypeMirror", "javax/lang/model/type/TypeMirror.html"], + \["TypeMismatch", "org/omg/CORBA/DynAnyPackage/TypeMismatch.html"], + \["TypeMismatch", "org/omg/DynamicAny/DynAnyPackage/TypeMismatch.html"], + \["TypeMismatch", "org/omg/IOP/CodecPackage/TypeMismatch.html"], + \["TypeMismatchHelper", "org/omg/DynamicAny/DynAnyPackage/TypeMismatchHelper.html"], + \["TypeMismatchHelper", "org/omg/IOP/CodecPackage/TypeMismatchHelper.html"], + \["TypeNotPresentException", "java/lang/TypeNotPresentException.html"], + \["TypeParameterElement", "javax/lang/model/element/TypeParameterElement.html"], + \["Types", "java/sql/Types.html"], + \["Types", "javax/lang/model/util/Types.html"], + \["TypeVariable", "java/lang/reflect/TypeVariable.html"], + \["TypeVariable", "javax/lang/model/type/TypeVariable.html"], + \["TypeVisitor", "javax/lang/model/type/TypeVisitor.html"], + \["UID", "java/rmi/server/UID.html"], + \["UIDefaults", "javax/swing/UIDefaults.html"], + \["UIDefaults.ActiveValue", "javax/swing/UIDefaults.ActiveValue.html"], + \["UIDefaults.LazyInputMap", "javax/swing/UIDefaults.LazyInputMap.html"], + \["UIDefaults.LazyValue", "javax/swing/UIDefaults.LazyValue.html"], + \["UIDefaults.ProxyLazyValue", "javax/swing/UIDefaults.ProxyLazyValue.html"], + \["UIEvent", "org/w3c/dom/events/UIEvent.html"], + \["UIManager", "javax/swing/UIManager.html"], + \["UIManager.LookAndFeelInfo", "javax/swing/UIManager.LookAndFeelInfo.html"], + \["UIResource", "javax/swing/plaf/UIResource.html"], + \["ULongLongSeqHelper", "org/omg/CORBA/ULongLongSeqHelper.html"], + \["ULongLongSeqHolder", "org/omg/CORBA/ULongLongSeqHolder.html"], + \["ULongSeqHelper", "org/omg/CORBA/ULongSeqHelper.html"], + \["ULongSeqHolder", "org/omg/CORBA/ULongSeqHolder.html"], + \["UndeclaredThrowableException", "java/lang/reflect/UndeclaredThrowableException.html"], + \["UndoableEdit", "javax/swing/undo/UndoableEdit.html"], + \["UndoableEditEvent", "javax/swing/event/UndoableEditEvent.html"], + \["UndoableEditListener", "javax/swing/event/UndoableEditListener.html"], + \["UndoableEditSupport", "javax/swing/undo/UndoableEditSupport.html"], + \["UndoManager", "javax/swing/undo/UndoManager.html"], + \["UnexpectedException", "java/rmi/UnexpectedException.html"], + \["UnicastRemoteObject", "java/rmi/server/UnicastRemoteObject.html"], + \["UnionMember", "org/omg/CORBA/UnionMember.html"], + \["UnionMemberHelper", "org/omg/CORBA/UnionMemberHelper.html"], + \["UNKNOWN", "org/omg/CORBA/UNKNOWN.html"], + \["UNKNOWN", "org/omg/PortableInterceptor/UNKNOWN.html"], + \["UnknownAnnotationValueException", "javax/lang/model/element/UnknownAnnotationValueException.html"], + \["UnknownElementException", "javax/lang/model/element/UnknownElementException.html"], + \["UnknownEncoding", "org/omg/IOP/CodecFactoryPackage/UnknownEncoding.html"], + \["UnknownEncodingHelper", "org/omg/IOP/CodecFactoryPackage/UnknownEncodingHelper.html"], + \["UnknownError", "java/lang/UnknownError.html"], + \["UnknownException", "org/omg/CORBA/portable/UnknownException.html"], + \["UnknownFormatConversionException", "java/util/UnknownFormatConversionException.html"], + \["UnknownFormatFlagsException", "java/util/UnknownFormatFlagsException.html"], + \["UnknownGroupException", "java/rmi/activation/UnknownGroupException.html"], + \["UnknownHostException", "java/net/UnknownHostException.html"], + \["UnknownHostException", "java/rmi/UnknownHostException.html"], + \["UnknownObjectException", "java/rmi/activation/UnknownObjectException.html"], + \["UnknownServiceException", "java/net/UnknownServiceException.html"], + \["UnknownTypeException", "javax/lang/model/type/UnknownTypeException.html"], + \["UnknownUserException", "org/omg/CORBA/UnknownUserException.html"], + \["UnknownUserExceptionHelper", "org/omg/CORBA/UnknownUserExceptionHelper.html"], + \["UnknownUserExceptionHolder", "org/omg/CORBA/UnknownUserExceptionHolder.html"], + \["UnmappableCharacterException", "java/nio/charset/UnmappableCharacterException.html"], + \["UnmarshalException", "java/rmi/UnmarshalException.html"], + \["UnmarshalException", "javax/xml/bind/UnmarshalException.html"], + \["Unmarshaller", "javax/xml/bind/Unmarshaller.html"], + \["Unmarshaller.Listener", "javax/xml/bind/Unmarshaller.Listener.html"], + \["UnmarshallerHandler", "javax/xml/bind/UnmarshallerHandler.html"], + \["UnmodifiableClassException", "java/lang/instrument/UnmodifiableClassException.html"], + \["UnmodifiableSetException", "javax/print/attribute/UnmodifiableSetException.html"], + \["UnrecoverableEntryException", "java/security/UnrecoverableEntryException.html"], + \["UnrecoverableKeyException", "java/security/UnrecoverableKeyException.html"], + \["Unreferenced", "java/rmi/server/Unreferenced.html"], + \["UnresolvedAddressException", "java/nio/channels/UnresolvedAddressException.html"], + \["UnresolvedPermission", "java/security/UnresolvedPermission.html"], + \["UnsatisfiedLinkError", "java/lang/UnsatisfiedLinkError.html"], + \["UnsolicitedNotification", "javax/naming/ldap/UnsolicitedNotification.html"], + \["UnsolicitedNotificationEvent", "javax/naming/ldap/UnsolicitedNotificationEvent.html"], + \["UnsolicitedNotificationListener", "javax/naming/ldap/UnsolicitedNotificationListener.html"], + \["UNSUPPORTED_POLICY", "org/omg/CORBA/UNSUPPORTED_POLICY.html"], + \["UNSUPPORTED_POLICY_VALUE", "org/omg/CORBA/UNSUPPORTED_POLICY_VALUE.html"], + \["UnsupportedAddressTypeException", "java/nio/channels/UnsupportedAddressTypeException.html"], + \["UnsupportedAudioFileException", "javax/sound/sampled/UnsupportedAudioFileException.html"], + \["UnsupportedCallbackException", "javax/security/auth/callback/UnsupportedCallbackException.html"], + \["UnsupportedCharsetException", "java/nio/charset/UnsupportedCharsetException.html"], + \["UnsupportedClassVersionError", "java/lang/UnsupportedClassVersionError.html"], + \["UnsupportedDataTypeException", "javax/activation/UnsupportedDataTypeException.html"], + \["UnsupportedEncodingException", "java/io/UnsupportedEncodingException.html"], + \["UnsupportedFlavorException", "java/awt/datatransfer/UnsupportedFlavorException.html"], + \["UnsupportedLookAndFeelException", "javax/swing/UnsupportedLookAndFeelException.html"], + \["UnsupportedOperationException", "java/lang/UnsupportedOperationException.html"], + \["URI", "java/net/URI.html"], + \["URIDereferencer", "javax/xml/crypto/URIDereferencer.html"], + \["URIException", "javax/print/URIException.html"], + \["URIParameter", "java/security/URIParameter.html"], + \["URIReference", "javax/xml/crypto/URIReference.html"], + \["URIReferenceException", "javax/xml/crypto/URIReferenceException.html"], + \["URIResolver", "javax/xml/transform/URIResolver.html"], + \["URISyntax", "javax/print/attribute/URISyntax.html"], + \["URISyntaxException", "java/net/URISyntaxException.html"], + \["URL", "java/net/URL.html"], + \["URLClassLoader", "java/net/URLClassLoader.html"], + \["URLConnection", "java/net/URLConnection.html"], + \["URLDataSource", "javax/activation/URLDataSource.html"], + \["URLDecoder", "java/net/URLDecoder.html"], + \["URLEncoder", "java/net/URLEncoder.html"], + \["URLStreamHandler", "java/net/URLStreamHandler.html"], + \["URLStreamHandlerFactory", "java/net/URLStreamHandlerFactory.html"], + \["URLStringHelper", "org/omg/CosNaming/NamingContextExtPackage/URLStringHelper.html"], + \["USER_EXCEPTION", "org/omg/PortableInterceptor/USER_EXCEPTION.html"], + \["UserDataHandler", "org/w3c/dom/UserDataHandler.html"], + \["UserException", "org/omg/CORBA/UserException.html"], + \["UShortSeqHelper", "org/omg/CORBA/UShortSeqHelper.html"], + \["UShortSeqHolder", "org/omg/CORBA/UShortSeqHolder.html"], + \["UTFDataFormatException", "java/io/UTFDataFormatException.html"], + \["Util", "javax/rmi/CORBA/Util.html"], + \["UtilDelegate", "javax/rmi/CORBA/UtilDelegate.html"], + \["Utilities", "javax/swing/text/Utilities.html"], + \["UUID", "java/util/UUID.html"], + \["ValidationEvent", "javax/xml/bind/ValidationEvent.html"], + \["ValidationEventCollector", "javax/xml/bind/util/ValidationEventCollector.html"], + \["ValidationEventHandler", "javax/xml/bind/ValidationEventHandler.html"], + \["ValidationEventImpl", "javax/xml/bind/helpers/ValidationEventImpl.html"], + \["ValidationEventLocator", "javax/xml/bind/ValidationEventLocator.html"], + \["ValidationEventLocatorImpl", "javax/xml/bind/helpers/ValidationEventLocatorImpl.html"], + \["ValidationException", "javax/xml/bind/ValidationException.html"], + \["Validator", "javax/xml/bind/Validator.html"], + \["Validator", "javax/xml/validation/Validator.html"], + \["ValidatorHandler", "javax/xml/validation/ValidatorHandler.html"], + \["ValueBase", "org/omg/CORBA/portable/ValueBase.html"], + \["ValueBaseHelper", "org/omg/CORBA/ValueBaseHelper.html"], + \["ValueBaseHolder", "org/omg/CORBA/ValueBaseHolder.html"], + \["ValueExp", "javax/management/ValueExp.html"], + \["ValueFactory", "org/omg/CORBA/portable/ValueFactory.html"], + \["ValueHandler", "javax/rmi/CORBA/ValueHandler.html"], + \["ValueHandlerMultiFormat", "javax/rmi/CORBA/ValueHandlerMultiFormat.html"], + \["ValueInputStream", "org/omg/CORBA/portable/ValueInputStream.html"], + \["ValueMember", "org/omg/CORBA/ValueMember.html"], + \["ValueMemberHelper", "org/omg/CORBA/ValueMemberHelper.html"], + \["ValueOutputStream", "org/omg/CORBA/portable/ValueOutputStream.html"], + \["VariableElement", "javax/lang/model/element/VariableElement.html"], + \["VariableHeightLayoutCache", "javax/swing/tree/VariableHeightLayoutCache.html"], + \["Vector", "java/util/Vector.html"], + \["VerifyError", "java/lang/VerifyError.html"], + \["VersionSpecHelper", "org/omg/CORBA/VersionSpecHelper.html"], + \["VetoableChangeListener", "java/beans/VetoableChangeListener.html"], + \["VetoableChangeListenerProxy", "java/beans/VetoableChangeListenerProxy.html"], + \["VetoableChangeSupport", "java/beans/VetoableChangeSupport.html"], + \["View", "javax/swing/text/View.html"], + \["ViewFactory", "javax/swing/text/ViewFactory.html"], + \["ViewportLayout", "javax/swing/ViewportLayout.html"], + \["ViewportUI", "javax/swing/plaf/ViewportUI.html"], + \["VirtualMachineError", "java/lang/VirtualMachineError.html"], + \["Visibility", "java/beans/Visibility.html"], + \["VisibilityHelper", "org/omg/CORBA/VisibilityHelper.html"], + \["VM_ABSTRACT", "org/omg/CORBA/VM_ABSTRACT.html"], + \["VM_CUSTOM", "org/omg/CORBA/VM_CUSTOM.html"], + \["VM_NONE", "org/omg/CORBA/VM_NONE.html"], + \["VM_TRUNCATABLE", "org/omg/CORBA/VM_TRUNCATABLE.html"], + \["VMID", "java/rmi/dgc/VMID.html"], + \["VoiceStatus", "javax/sound/midi/VoiceStatus.html"], + \["Void", "java/lang/Void.html"], + \["VolatileImage", "java/awt/image/VolatileImage.html"], + \["W3CDomHandler", "javax/xml/bind/annotation/W3CDomHandler.html"], + \["W3CEndpointReference", "javax/xml/ws/wsaddressing/W3CEndpointReference.html"], + \["W3CEndpointReferenceBuilder", "javax/xml/ws/wsaddressing/W3CEndpointReferenceBuilder.html"], + \["WCharSeqHelper", "org/omg/CORBA/WCharSeqHelper.html"], + \["WCharSeqHolder", "org/omg/CORBA/WCharSeqHolder.html"], + \["WeakHashMap", "java/util/WeakHashMap.html"], + \["WeakReference", "java/lang/ref/WeakReference.html"], + \["WebEndpoint", "javax/xml/ws/WebEndpoint.html"], + \["WebFault", "javax/xml/ws/WebFault.html"], + \["WebMethod", "javax/jws/WebMethod.html"], + \["WebParam", "javax/jws/WebParam.html"], + \["WebParam.Mode", "javax/jws/WebParam.Mode.html"], + \["WebResult", "javax/jws/WebResult.html"], + \["WebRowSet", "javax/sql/rowset/WebRowSet.html"], + \["WebService", "javax/jws/WebService.html"], + \["WebServiceClient", "javax/xml/ws/WebServiceClient.html"], + \["WebServiceContext", "javax/xml/ws/WebServiceContext.html"], + \["WebServiceException", "javax/xml/ws/WebServiceException.html"], + \["WebServiceFeature", "javax/xml/ws/WebServiceFeature.html"], + \["WebServiceFeatureAnnotation", "javax/xml/ws/spi/WebServiceFeatureAnnotation.html"], + \["WebServicePermission", "javax/xml/ws/WebServicePermission.html"], + \["WebServiceProvider", "javax/xml/ws/WebServiceProvider.html"], + \["WebServiceRef", "javax/xml/ws/WebServiceRef.html"], + \["WebServiceRefs", "javax/xml/ws/WebServiceRefs.html"], + \["WildcardType", "java/lang/reflect/WildcardType.html"], + \["WildcardType", "javax/lang/model/type/WildcardType.html"], + \["Window", "java/awt/Window.html"], + \["WindowAdapter", "java/awt/event/WindowAdapter.html"], + \["WindowConstants", "javax/swing/WindowConstants.html"], + \["WindowEvent", "java/awt/event/WindowEvent.html"], + \["WindowFocusListener", "java/awt/event/WindowFocusListener.html"], + \["WindowListener", "java/awt/event/WindowListener.html"], + \["WindowStateListener", "java/awt/event/WindowStateListener.html"], + \["WrappedPlainView", "javax/swing/text/WrappedPlainView.html"], + \["Wrapper", "java/sql/Wrapper.html"], + \["WritableByteChannel", "java/nio/channels/WritableByteChannel.html"], + \["WritableRaster", "java/awt/image/WritableRaster.html"], + \["WritableRenderedImage", "java/awt/image/WritableRenderedImage.html"], + \["WriteAbortedException", "java/io/WriteAbortedException.html"], + \["Writer", "java/io/Writer.html"], + \["WrongAdapter", "org/omg/PortableServer/POAPackage/WrongAdapter.html"], + \["WrongAdapterHelper", "org/omg/PortableServer/POAPackage/WrongAdapterHelper.html"], + \["WrongPolicy", "org/omg/PortableServer/POAPackage/WrongPolicy.html"], + \["WrongPolicyHelper", "org/omg/PortableServer/POAPackage/WrongPolicyHelper.html"], + \["WrongTransaction", "org/omg/CORBA/WrongTransaction.html"], + \["WrongTransactionHelper", "org/omg/CORBA/WrongTransactionHelper.html"], + \["WrongTransactionHolder", "org/omg/CORBA/WrongTransactionHolder.html"], + \["WStringSeqHelper", "org/omg/CORBA/WStringSeqHelper.html"], + \["WStringSeqHolder", "org/omg/CORBA/WStringSeqHolder.html"], + \["WStringValueHelper", "org/omg/CORBA/WStringValueHelper.html"], + \["X500Principal", "javax/security/auth/x500/X500Principal.html"], + \["X500PrivateCredential", "javax/security/auth/x500/X500PrivateCredential.html"], + \["X509Certificate", "java/security/cert/X509Certificate.html"], + \["X509Certificate", "javax/security/cert/X509Certificate.html"], + \["X509CertSelector", "java/security/cert/X509CertSelector.html"], + \["X509CRL", "java/security/cert/X509CRL.html"], + \["X509CRLEntry", "java/security/cert/X509CRLEntry.html"], + \["X509CRLSelector", "java/security/cert/X509CRLSelector.html"], + \["X509Data", "javax/xml/crypto/dsig/keyinfo/X509Data.html"], + \["X509EncodedKeySpec", "java/security/spec/X509EncodedKeySpec.html"], + \["X509ExtendedKeyManager", "javax/net/ssl/X509ExtendedKeyManager.html"], + \["X509Extension", "java/security/cert/X509Extension.html"], + \["X509IssuerSerial", "javax/xml/crypto/dsig/keyinfo/X509IssuerSerial.html"], + \["X509KeyManager", "javax/net/ssl/X509KeyManager.html"], + \["X509TrustManager", "javax/net/ssl/X509TrustManager.html"], + \["XAConnection", "javax/sql/XAConnection.html"], + \["XADataSource", "javax/sql/XADataSource.html"], + \["XAException", "javax/transaction/xa/XAException.html"], + \["XAResource", "javax/transaction/xa/XAResource.html"], + \["Xid", "javax/transaction/xa/Xid.html"], + \["XmlAccessOrder", "javax/xml/bind/annotation/XmlAccessOrder.html"], + \["XmlAccessorOrder", "javax/xml/bind/annotation/XmlAccessorOrder.html"], + \["XmlAccessorType", "javax/xml/bind/annotation/XmlAccessorType.html"], + \["XmlAccessType", "javax/xml/bind/annotation/XmlAccessType.html"], + \["XmlAdapter", "javax/xml/bind/annotation/adapters/XmlAdapter.html"], + \["XmlAnyAttribute", "javax/xml/bind/annotation/XmlAnyAttribute.html"], + \["XmlAnyElement", "javax/xml/bind/annotation/XmlAnyElement.html"], + \["XmlAttachmentRef", "javax/xml/bind/annotation/XmlAttachmentRef.html"], + \["XmlAttribute", "javax/xml/bind/annotation/XmlAttribute.html"], + \["XMLConstants", "javax/xml/XMLConstants.html"], + \["XMLCryptoContext", "javax/xml/crypto/XMLCryptoContext.html"], + \["XMLDecoder", "java/beans/XMLDecoder.html"], + \["XmlElement", "javax/xml/bind/annotation/XmlElement.html"], + \["XmlElement.DEFAULT", "javax/xml/bind/annotation/XmlElement.DEFAULT.html"], + \["XmlElementDecl", "javax/xml/bind/annotation/XmlElementDecl.html"], + \["XmlElementDecl.GLOBAL", "javax/xml/bind/annotation/XmlElementDecl.GLOBAL.html"], + \["XmlElementRef", "javax/xml/bind/annotation/XmlElementRef.html"], + \["XmlElementRef.DEFAULT", "javax/xml/bind/annotation/XmlElementRef.DEFAULT.html"], + \["XmlElementRefs", "javax/xml/bind/annotation/XmlElementRefs.html"], + \["XmlElements", "javax/xml/bind/annotation/XmlElements.html"], + \["XmlElementWrapper", "javax/xml/bind/annotation/XmlElementWrapper.html"], + \["XMLEncoder", "java/beans/XMLEncoder.html"], + \["XmlEnum", "javax/xml/bind/annotation/XmlEnum.html"], + \["XmlEnumValue", "javax/xml/bind/annotation/XmlEnumValue.html"], + \["XMLEvent", "javax/xml/stream/events/XMLEvent.html"], + \["XMLEventAllocator", "javax/xml/stream/util/XMLEventAllocator.html"], + \["XMLEventConsumer", "javax/xml/stream/util/XMLEventConsumer.html"], + \["XMLEventFactory", "javax/xml/stream/XMLEventFactory.html"], + \["XMLEventReader", "javax/xml/stream/XMLEventReader.html"], + \["XMLEventWriter", "javax/xml/stream/XMLEventWriter.html"], + \["XMLFilter", "org/xml/sax/XMLFilter.html"], + \["XMLFilterImpl", "org/xml/sax/helpers/XMLFilterImpl.html"], + \["XMLFormatter", "java/util/logging/XMLFormatter.html"], + \["XMLGregorianCalendar", "javax/xml/datatype/XMLGregorianCalendar.html"], + \["XmlID", "javax/xml/bind/annotation/XmlID.html"], + \["XmlIDREF", "javax/xml/bind/annotation/XmlIDREF.html"], + \["XmlInlineBinaryData", "javax/xml/bind/annotation/XmlInlineBinaryData.html"], + \["XMLInputFactory", "javax/xml/stream/XMLInputFactory.html"], + \["XmlJavaTypeAdapter", "javax/xml/bind/annotation/adapters/XmlJavaTypeAdapter.html"], + \["XmlJavaTypeAdapter.DEFAULT", "javax/xml/bind/annotation/adapters/XmlJavaTypeAdapter.DEFAULT.html"], + \["XmlJavaTypeAdapters", "javax/xml/bind/annotation/adapters/XmlJavaTypeAdapters.html"], + \["XmlList", "javax/xml/bind/annotation/XmlList.html"], + \["XmlMimeType", "javax/xml/bind/annotation/XmlMimeType.html"], + \["XmlMixed", "javax/xml/bind/annotation/XmlMixed.html"], + \["XmlNs", "javax/xml/bind/annotation/XmlNs.html"], + \["XmlNsForm", "javax/xml/bind/annotation/XmlNsForm.html"], + \["XMLObject", "javax/xml/crypto/dsig/XMLObject.html"], + \["XMLOutputFactory", "javax/xml/stream/XMLOutputFactory.html"], + \["XMLParseException", "javax/management/modelmbean/XMLParseException.html"], + \["XmlReader", "javax/sql/rowset/spi/XmlReader.html"], + \["XMLReader", "org/xml/sax/XMLReader.html"], + \["XMLReaderAdapter", "org/xml/sax/helpers/XMLReaderAdapter.html"], + \["XMLReaderFactory", "org/xml/sax/helpers/XMLReaderFactory.html"], + \["XmlRegistry", "javax/xml/bind/annotation/XmlRegistry.html"], + \["XMLReporter", "javax/xml/stream/XMLReporter.html"], + \["XMLResolver", "javax/xml/stream/XMLResolver.html"], + \["XmlRootElement", "javax/xml/bind/annotation/XmlRootElement.html"], + \["XmlSchema", "javax/xml/bind/annotation/XmlSchema.html"], + \["XmlSchemaType", "javax/xml/bind/annotation/XmlSchemaType.html"], + \["XmlSchemaType.DEFAULT", "javax/xml/bind/annotation/XmlSchemaType.DEFAULT.html"], + \["XmlSchemaTypes", "javax/xml/bind/annotation/XmlSchemaTypes.html"], + \["XmlSeeAlso", "javax/xml/bind/annotation/XmlSeeAlso.html"], + \["XMLSignature", "javax/xml/crypto/dsig/XMLSignature.html"], + \["XMLSignature.SignatureValue", "javax/xml/crypto/dsig/XMLSignature.SignatureValue.html"], + \["XMLSignatureException", "javax/xml/crypto/dsig/XMLSignatureException.html"], + \["XMLSignatureFactory", "javax/xml/crypto/dsig/XMLSignatureFactory.html"], + \["XMLSignContext", "javax/xml/crypto/dsig/XMLSignContext.html"], + \["XMLStreamConstants", "javax/xml/stream/XMLStreamConstants.html"], + \["XMLStreamException", "javax/xml/stream/XMLStreamException.html"], + \["XMLStreamReader", "javax/xml/stream/XMLStreamReader.html"], + \["XMLStreamWriter", "javax/xml/stream/XMLStreamWriter.html"], + \["XMLStructure", "javax/xml/crypto/XMLStructure.html"], + \["XmlTransient", "javax/xml/bind/annotation/XmlTransient.html"], + \["XmlType", "javax/xml/bind/annotation/XmlType.html"], + \["XmlType.DEFAULT", "javax/xml/bind/annotation/XmlType.DEFAULT.html"], + \["XMLValidateContext", "javax/xml/crypto/dsig/XMLValidateContext.html"], + \["XmlValue", "javax/xml/bind/annotation/XmlValue.html"], + \["XmlWriter", "javax/sql/rowset/spi/XmlWriter.html"], + \["XPath", "javax/xml/xpath/XPath.html"], + \["XPathConstants", "javax/xml/xpath/XPathConstants.html"], + \["XPathException", "javax/xml/xpath/XPathException.html"], + \["XPathExpression", "javax/xml/xpath/XPathExpression.html"], + \["XPathExpressionException", "javax/xml/xpath/XPathExpressionException.html"], + \["XPathFactory", "javax/xml/xpath/XPathFactory.html"], + \["XPathFactoryConfigurationException", "javax/xml/xpath/XPathFactoryConfigurationException.html"], + \["XPathFilter2ParameterSpec", "javax/xml/crypto/dsig/spec/XPathFilter2ParameterSpec.html"], + \["XPathFilterParameterSpec", "javax/xml/crypto/dsig/spec/XPathFilterParameterSpec.html"], + \["XPathFunction", "javax/xml/xpath/XPathFunction.html"], + \["XPathFunctionException", "javax/xml/xpath/XPathFunctionException.html"], + \["XPathFunctionResolver", "javax/xml/xpath/XPathFunctionResolver.html"], + \["XPathType", "javax/xml/crypto/dsig/spec/XPathType.html"], + \["XPathType.Filter", "javax/xml/crypto/dsig/spec/XPathType.Filter.html"], + \["XPathVariableResolver", "javax/xml/xpath/XPathVariableResolver.html"], + \["XSLTTransformParameterSpec", "javax/xml/crypto/dsig/spec/XSLTTransformParameterSpec.html"], + \["ZipEntry", "java/util/zip/ZipEntry.html"], + \["ZipError", "java/util/zip/ZipError.html"], + \["ZipException", "java/util/zip/ZipException.html"], + \["ZipFile", "java/util/zip/ZipFile.html"], + \["ZipInputStream", "java/util/zip/ZipInputStream.html"], + \["ZipOutputStream", "java/util/zip/ZipOutputStream.html"], + \["ZoneView", "javax/swing/text/ZoneView.html"], + \["_BindingIteratorImplBase", "org/omg/CosNaming/_BindingIteratorImplBase.html"], + \["_BindingIteratorStub", "org/omg/CosNaming/_BindingIteratorStub.html"], + \["_DynAnyFactoryStub", "org/omg/DynamicAny/_DynAnyFactoryStub.html"], + \["_DynAnyStub", "org/omg/DynamicAny/_DynAnyStub.html"], + \["_DynArrayStub", "org/omg/DynamicAny/_DynArrayStub.html"], + \["_DynEnumStub", "org/omg/DynamicAny/_DynEnumStub.html"], + \["_DynFixedStub", "org/omg/DynamicAny/_DynFixedStub.html"], + \["_DynSequenceStub", "org/omg/DynamicAny/_DynSequenceStub.html"], + \["_DynStructStub", "org/omg/DynamicAny/_DynStructStub.html"], + \["_DynUnionStub", "org/omg/DynamicAny/_DynUnionStub.html"], + \["_DynValueStub", "org/omg/DynamicAny/_DynValueStub.html"], + \["_IDLTypeStub", "org/omg/CORBA/_IDLTypeStub.html"], + \["_NamingContextExtStub", "org/omg/CosNaming/_NamingContextExtStub.html"], + \["_NamingContextImplBase", "org/omg/CosNaming/_NamingContextImplBase.html"], + \["_NamingContextStub", "org/omg/CosNaming/_NamingContextStub.html"], + \["_PolicyStub", "org/omg/CORBA/_PolicyStub.html"], + \["_Remote_Stub", "org/omg/stub/java/rmi/_Remote_Stub.html"], + \["_ServantActivatorStub", "org/omg/PortableServer/_ServantActivatorStub.html"], + \["_ServantLocatorStub", "org/omg/PortableServer/_ServantLocatorStub.html"]] +endif + diff -r e0f13b88e80e -r c4d3b4507707 vim/bundle/slimv/ftplugin/slimv.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vim/bundle/slimv/ftplugin/slimv.py Fri Nov 12 18:30:35 2010 -0500 @@ -0,0 +1,574 @@ +#!/usr/bin/env python + +############################################################################### +# +# Client/Server code for Slimv +# slimv.py: Client/Server code for slimv.vim plugin +# Version: 0.6.2 +# Last Change: 01 Jun 2010 +# Maintainer: Tamas Kovacs +# License: This file is placed in the public domain. +# No warranty, express or implied. +# *** *** Use At-Your-Own-Risk! *** *** +# +############################################################################### + +import os +import sys +import getopt +import time +import shlex +import socket +import traceback +from subprocess import Popen, PIPE, STDOUT +from threading import Thread, BoundedSemaphore + +autoconnect = 1 # Start and connect server automatically + +HOST = '' # Symbolic name meaning the local host +PORT = 5151 # Arbitrary non-privileged port + +debug_level = 0 # Debug level for diagnostic messages +terminate = 0 # Main program termination flag + +python_path = 'python' # Path of the Python interpreter (overridden via command line args) +lisp_path = 'clisp.exe' # Path of the Lisp interpreter (overridden via command line args) +slimv_path = 'slimv.py' # Path of this script (determined later) +run_cmd = '' # Complex server-run command (if given via command line args) + +newline = '\n' + +# Check if we're running Windows or Mac OS X, otherwise assume Linux +mswindows = (sys.platform == 'win32') +darwin = (sys.platform == 'darwin') + +if not (mswindows or darwin): + import pty + +def log( s, level ): + """Print diagnostic messages according to the actual debug level. + """ + if debug_level >= level: + print s + + +############################################################################### +# +# Client part +# +############################################################################### + +def start_server(): + """Spawn server. Does not check if the server is already running. + """ + if run_cmd == '': + # Complex run command not given, build it from the information available + if mswindows or darwin: + cmd = [] + else: + cmd = ['xterm', '-T', 'Slimv', '-e'] + cmd = cmd + [python_path, slimv_path, '-p', str(PORT), '-l', lisp_path, '-s'] + else: + cmd = shlex.split(run_cmd) + + # Start server + #TODO: put in try-block + if mswindows: + CREATE_NEW_CONSOLE = 16 + server = Popen( cmd, creationflags=CREATE_NEW_CONSOLE ) + elif darwin: + from ScriptingBridge import SBApplication + + term = SBApplication.applicationWithBundleIdentifier_("com.apple.Terminal") + term.doScript_in_(" ".join(cmd) + " ; exit", 0) + else: + server = Popen( cmd ) + + # Allow subprocess (server) to start + time.sleep( 2.0 ) + + +def connect_server(): + """Try to connect server, if server not found then spawn it. + Return socket object on success, None on failure. + """ + + s = socket.socket( socket.AF_INET, socket.SOCK_STREAM ) + try: + s.connect( ( 'localhost', PORT ) ) + except socket.error, msg: + if autoconnect: + # We need to try to start the server automatically + s.close() + start_server() + + # Open socket to the server + s = socket.socket( socket.AF_INET, socket.SOCK_STREAM ) + try: + s.connect( ( 'localhost', PORT ) ) + except socket.error, msg: + s.close() + s = None + else: # not autoconnect + print "Server not found" + s = None + return s + + +def send_line( server, line ): + """Send a line to the server: + first send line length in 4 bytes, then send the line itself. + """ + l = len(line) + lstr = chr(l&255) + chr((l>>8)&255) + chr((l>>16)&255) + chr((l>>24)&255) + server.send( lstr ) # send message length first + server.send( line ) # then the message itself + + +def client_file( input_filename ): + """Main client routine - input file version: + starts server if needed then send text to server. + Input is read from input file. + """ + s = connect_server() + if s is None: + return + + try: + file = open( input_filename, 'rt' ) + try: + # Send contents of the file to the server + lines = '' + for line in file: + lines = lines + line + send_line( s, lines ) + finally: + file.close() + except: + return + + s.close() + + +############################################################################### +# +# Server part +# +############################################################################### + +class repl_buffer: + def __init__ ( self, output_pipe ): + + self.output = output_pipe + self.filename = '' + self.buffer = '' + self.sema = BoundedSemaphore() + # Semaphore to synchronize access to the global display queue + + def setfile( self, filename ): + """Set output filename. Greet user if this is the first time. + """ + self.sema.acquire() + oldname = self.filename + self.filename = filename + if oldname == '': + try: + # Delete old file creted at a previous run + os.remove( self.filename ) + except: + # OK, at least we tried + pass + self.write_nolock( newline + ';;; Slimv client is connected to REPL on port ' + str(PORT) + '.' + newline, True ) + user = None + if mswindows: + user = os.getenv('USERNAME') + else: + user = os.getenv('USER') + if not user: + self.write_nolock( ';;; This could be the start of a beautiful program.' + newline + newline, True ) + else: + self.write_nolock( ';;; ' + user + ', this could be the start of a beautiful program.' + newline + newline, True ) + self.sema.release() + + def writebegin( self ): + """Begin the writing process. The process is protected by a semaphore. + """ + self.sema.acquire() + + def writeend( self ): + """Finish the writing process. Release semaphore + """ + self.sema.release() + + def write_nolock( self, text, fileonly=False ): + """Write text into the global display queue buffer. + The writing process is not protected. + """ + if not fileonly: + try: + # Write all lines to the display + os.write( self.output.fileno(), text ) + except: + pass + + if self.filename != '': + tries = 4 + while tries > 0: + try: + file = open( self.filename, 'at' ) + try: + #file.write( text ) + if self.buffer != '': + # There is output pending + os.write(file.fileno(), self.buffer ) + self.buffer = '' + os.write(file.fileno(), text ) + finally: + file.close() + tries = 0 + except IOError: + tries = tries - 1 + if tries == 0: + traceback.print_exc() + time.sleep(0.05) + except: + tries = tries - 1 + time.sleep(0.05) + elif len( self.buffer ) < 2000: + # No filename supplied, collect output info a buffer until filename is given + # We collect only some bytes, then probably no filename will be given at all + self.buffer = self.buffer + text + + def write( self, text, fileonly=False ): + """Write text into the global display queue buffer. + The writing process is protected by a semaphome. + """ + self.writebegin() + self.write_nolock( text, fileonly ) + self.writeend() + + +class socket_listener( Thread ): + """Server thread to receive text from the client via socket. + """ + + def __init__ ( self, inp, buffer, pid ): + Thread.__init__( self ) + self.inp = inp + self.buffer = buffer + self.pid = pid + + def run( self ): + global terminate + + # Open server socket + self.s = socket.socket( socket.AF_INET, socket.SOCK_STREAM ) + self.s.bind( (HOST, PORT) ) + + while not terminate: + # Listen server socket + self.s.listen( 1 ) + conn, addr = self.s.accept() + + while not terminate: + l = 0 + lstr = '' + # Read length first, it comes in 4 bytes + try: + lstr = conn.recv(4) + if len( lstr ) <= 0: + break + except: + traceback.print_exc() + break + if terminate: + break + l = ord(lstr[0]) + (ord(lstr[1])<<8) + (ord(lstr[2])<<16) + (ord(lstr[3])<<24) + if l > 0: + # Valid length received, now wait for the message + try: + # Read the message itself + received = '' + while len( received ) < l: + r = conn.recv(l) + if len( r ) == 0: + break + received = received + r + if len( received ) < l: + break + except: + traceback.print_exc() + break + + if len(received) >= 7 and received[0:7] == 'SLIMV::': + command = received[7:] + if len(command) >= 9 and command[0:9] == 'INTERRUPT': + try: + if mswindows: + import win32api + CTRL_C_EVENT = 0 + win32api.GenerateConsoleCtrlEvent( CTRL_C_EVENT, 0 ) + else: + import signal + os.kill( self.pid, signal.SIGINT ) + except: + # OK, at least we tried + # Go on without interruption + pass + if len(command) >= 8 and command[0:8] == 'OUTPUT::': + output_filename = command[8:].rstrip( '\n' ) + self.buffer.setfile( output_filename ) + else: + # Fork here: write message to the stdin of REPL + # and also write it to the display (display queue buffer) + self.buffer.writebegin() + self.buffer.write_nolock( received ) + os.write(self.inp.fileno(), received) + self.buffer.writeend() + + conn.close() + + +class output_listener( Thread ): + """Server thread to receive REPL output. + """ + + def __init__ ( self, out, buffer ): + Thread.__init__( self ) + self.out = out + self.buffer = buffer + + def run( self ): + global terminate + + while not terminate: + try: + # Read input from the stdout of REPL + # and write it to the display (display queue buffer) + if mswindows: + c = self.out.read( 1 ) + if ord( c ) == 0x0D: + # Special handling of 0x0D+0x0A on Windows + c2 = self.out.read( 1 ) + if ord( c2 ) == 0x0A: + self.buffer.write( '\n' ) + else: + self.buffer.write( c ) + self.buffer.write( c2 ) + else: + self.buffer.write( c ) + elif darwin: + c = self.out.read( 1 ) + self.buffer.write( c ) + else: + c = self.out.read( 1 ) + if ord( c ) != 0x0D: + self.buffer.write( c ) + except: + terminate = 1 + + +def server(): + """Main server routine: starts REPL and helper threads for + sending and receiving data to/from REPL. + """ + global terminate + + # First check if server already runs + s = socket.socket( socket.AF_INET, socket.SOCK_STREAM ) + try: + s.connect( ( 'localhost', PORT ) ) + except socket.error, msg: + # Server not found, our time has come, we'll start a new server in a moment + pass + else: + # Server found, nothing to do here + s.close() + print "Server is already running" + return + + # Build Lisp-starter command + lisp_exp = lisp_path.replace( '\\', '\\\\' ) + if not mswindows: + # Popen does not work with tilde-prefix on Linux + # so we expand them to the home directory + user = os.path.expanduser( '~/' ) + lisp_exp = lisp_exp.replace( ' ~/', ' ' + user ) + cmd = shlex.split( lisp_exp ) + + # Start Lisp + if mswindows or darwin: + repl = Popen( cmd, stdin=PIPE, stdout=PIPE, stderr=STDOUT ) + repl_stdin = repl.stdin + repl_stdout = repl.stdout + repl_pid = repl.pid + else: + repl_pid, repl_fd = pty.fork() + if repl_pid == 0: + os.execvp( cmd[0], cmd ) + os._exit(1) + repl_stdin = repl_stdout = os.fdopen( repl_fd ) + + buffer = repl_buffer( sys.stdout ) + + # Create and start helper threads + sl = socket_listener( repl_stdin, buffer, repl_pid ) + sl.start() + ol = output_listener( repl_stdout, buffer ) + ol.start() + + # Allow Lisp to start, confuse it with some fancy Slimv messages + sys.stdout.write( ";;; Slimv server is started on port " + str(PORT) + newline ) + sys.stdout.write( ";;; Slimv is spawning REPL..." + newline + newline ) + time.sleep(0.5) # wait for Lisp to start + #sys.stdout.write( ";;; Slimv connection established" + newline ) + + # Main server loop + while not terminate: + try: + # Read input from the console and write it + # to the stdin of REPL + text = raw_input() + os.write( repl_stdin.fileno(), text + newline ) + buffer.write( text + newline, True ) + except EOFError: + # EOF (Ctrl+Z on Windows, Ctrl+D on Linux) pressed? + terminate = 1 + except KeyboardInterrupt: + # Interrupted from keyboard (Ctrl+C)? + # We just ignore it here, it will be propagated to the child anyway + pass + + # The socket is opened here only for waking up the server thread + # in order to recognize the termination message + #TODO: exit REPL if this script is about to exit + cs = socket.socket( socket.AF_INET, socket.SOCK_STREAM ) + try: + cs.connect( ( 'localhost', PORT ) ) + cs.send( " " ) + finally: + # We don't care if this above fails, we'll exit anyway + cs.close() + + # Send exit command to child process and + # wake output listener up at the same time + try: + repl_stdin.close() + except: + # We don't care if this above fails, we'll exit anyway + pass + + # Be nice + print 'Thank you for using Slimv.' + + # Wait for the child process to exit + time.sleep(1) + + +def escape_path( path ): + """Surround path containing spaces with backslash + double quote, + so that it can be passed as a command line argument. + """ + if path.find( ' ' ) < 0: + return path + if path[0:2] == '\\\"': + return path + elif path[0] == '\"': + return '\\' + path + '\\' + else: + return '\\\"' + path + '\\\"' + + +def usage(): + """Displays program usage information. + """ + progname = os.path.basename( sys.argv[0] ) + print 'Usage: ', progname + ' [-d LEVEL] [-s] [-f INFILE]' + print + print 'Options:' + print ' -?, -h, --help show this help message and exit' + print ' -l PATH, --lisp=PATH path of Lisp interpreter' + print ' -r PATH, --run=PATH full command to run the server' + print ' -p PORT, --port=PORT port number to use by the server/client' + print ' -d LEVEL, --debug=LEVEL set debug LEVEL (0..3)' + print ' -s start server' + print ' -f FILENAME, --file=FILENAME start client and send contents of file' + print ' named FILENAME to server' + + +############################################################################### +# +# Main program +# +############################################################################### + +if __name__ == '__main__': + + EXIT, SERVER, CLIENT = range( 3 ) + mode = EXIT + slimv_path = sys.argv[0] + python_path = sys.executable + input_filename = '' + + # Always this trouble with the path/filenames containing spaces: + # enclose them in double quotes + if python_path.find( ' ' ) >= 0: + python_path = '"' + python_path + '"' + + # Get command line options + try: + opts, args = getopt.getopt( sys.argv[1:], '?hcsf:p:l:r:d:', \ + ['help', 'client', 'server', 'file=', 'port=', 'lisp=', 'run=', 'debug='] ) + + # Process options + for o, a in opts: + if o in ('-?', '-h', '--help'): + usage() + break + if o in ('-p', '--port'): + try: + PORT = int(a) + except: + # If given port number is malformed, then keep default value + pass + if o in ('-l', '--lisp'): + lisp_path = a + if o in ('-r', '--run'): + run_cmd = a + if o in ('-d', '--debug'): + try: + debug_level = int(a) + except: + # If given level is malformed, then keep default value + pass + if o in ('-s', '--server'): + mode = SERVER + if o in ('-c', '--client'): + mode = CLIENT + if o in ('-f', '--file'): + mode = CLIENT + input_filename = a + + except getopt.GetoptError: + # print help information and exit: + usage() + + if mode == SERVER: + # We are started in server mode + server() + + if mode == CLIENT: + # We are started in client mode + if run_cmd != '': + # It is possible to pass special argument placeholders to run_cmd + run_cmd = run_cmd.replace( '@p', escape_path( python_path ) ) + run_cmd = run_cmd.replace( '@s', escape_path( slimv_path ) ) + run_cmd = run_cmd.replace( '@l', escape_path( lisp_path ) ) + run_cmd = run_cmd.replace( '@@', '@' ) + log( run_cmd, 1 ) + if input_filename != '': + client_file( input_filename ) + else: + start_server() + +# --- END OF FILE --- diff -r e0f13b88e80e -r c4d3b4507707 vim/bundle/slimv/ftplugin/slimv.vim --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vim/bundle/slimv/ftplugin/slimv.vim Fri Nov 12 18:30:35 2010 -0500 @@ -0,0 +1,1666 @@ +" slimv.vim: The Superior Lisp Interaction Mode for VIM +" Version: 0.7.1 +" Last Change: 31 Oct 2010 +" Maintainer: Tamas Kovacs +" License: This file is placed in the public domain. +" No warranty, express or implied. +" *** *** Use At-Your-Own-Risk! *** *** +" +" ===================================================================== +" +" Load Once: +if &cp || exists( 'g:slimv_loaded' ) + finish +endif + +let g:slimv_loaded = 1 + +if has( 'win32' ) || has( 'win95' ) || has( 'win64' ) || has( 'win16' ) + let g:slimv_windows = 1 +else + " This means Linux only at the moment + let g:slimv_windows = 0 +endif + + +" ===================================================================== +" Functions used by global variable definitions +" ===================================================================== + +" Try to autodetect Python executable +function! SlimvAutodetectPython() + if executable( 'python' ) + return 'python' + endif + + if g:slimv_windows + " Try to find Python on the standard installation places + let pythons = split( globpath( 'c:/python*,c:/Program Files/python*', 'python.exe' ), '\n' ) + if len( pythons ) > 0 + return pythons[0] + endif + " Go deeper in subdirectories + let pythons = split( globpath( 'c:/python*/**,c:/Program Files/python*/**', 'python.exe' ), '\n' ) + if len( pythons ) > 0 + return pythons[0] + endif + return '' + else + return '' + endif +endfunction + +" Build the command to start the client +function! SlimvMakeClientCommand() + if g:slimv_python == '' || g:slimv_lisp == '' + " We don't have enough information to build client command + return '' + endif + + " Start with the Python path + let cmd = g:slimv_python + + " Add path of Slimv script, on Windows enclose in double quotes + if g:slimv_windows + let cmd = cmd . ' "' . g:slimv_path . '"' + else + let cmd = cmd . ' ' . g:slimv_path + endif + + " Add port number if different from default + if g:slimv_port != 5151 + let cmd = cmd . ' -p ' . g:slimv_port + endif + + " Add Lisp path + let cmd = cmd . ' -l ' . g:slimv_lisp + + return cmd +endfunction + +function! SlimvClientCommand() + if g:slimv_client == '' + " No command to start client, we are clueless, ask user for assistance + if g:slimv_python == '' + let g:slimv_python = input( 'Enter Python path (or fill g:slimv_python in your vimrc): ', '', 'file' ) + endif + if g:slimv_lisp == '' + let g:slimv_lisp = input( 'Enter Lisp path (or fill g:slimv_lisp in your vimrc): ', '', 'file' ) + endif + let g:slimv_client = SlimvMakeClientCommand() + endif +endfunction + +" Find slimv.py in the Vim ftplugin directory (if not given in vimrc) +if !exists( 'g:slimv_path' ) + let plugins = split( globpath( &runtimepath, 'ftplugin/**/slimv.py'), '\n' ) + if len( plugins ) > 0 + let g:slimv_path = plugins[0] + else + let g:slimv_path = 'slimv.py' + endif +endif + +" Get the filetype (Lisp dialect) used by Slimv +function! SlimvGetFiletype() + if &ft != '' + " Return Vim filetype if defined + return &ft + endif + + if match( tolower( g:slimv_lisp ), 'clojure' ) >= 0 || match( tolower( g:slimv_lisp ), 'clj' ) >= 0 + " Must be Clojure + return 'clojure' + endif + + " We have no clue, guess its lisp + return 'lisp' +endfunction + + +" ===================================================================== +" Global variable definitions +" ===================================================================== + +" Leave client window open for debugging purposes +" (works only on Windows at the moment) +if !exists( 'g:slimv_debug_client' ) + let g:slimv_debug_client = 0 +endif + +" TCP port number to use +if !exists( 'g:slimv_port' ) + let g:slimv_port = 5151 +endif + +" Find Python (if not given in vimrc) +if !exists( 'g:slimv_python' ) + let g:slimv_python = SlimvAutodetectPython() +endif + +" Find Lisp (if not given in vimrc) +if !exists( 'g:slimv_lisp' ) + let lisp = b:SlimvAutodetect() + let g:slimv_lisp = lisp[0] + if !exists( 'g:slimv_impl' ) + let g:slimv_impl = lisp[1] + endif +endif + +" Try to find out the Lisp implementation +" if not autodetected and not given in vimrc +if !exists( 'g:slimv_impl' ) + let g:slimv_impl = b:SlimvImplementation() +endif + +" Open a REPL buffer inside Vim? +if !exists( 'g:slimv_repl_open' ) + let g:slimv_repl_open = 1 +endif + +" Directory name for the REPL buffer file +if !exists( 'g:slimv_repl_dir' ) + if g:slimv_windows + let g:slimv_repl_dir = matchstr( tempname(), '.*\\' ) + else + let g:slimv_repl_dir = '/tmp/' + endif +endif + +" Filename for the REPL buffer file +if !exists( 'g:slimv_repl_file' ) + let g:slimv_repl_file = b:SlimvREPLFile() +endif + +" Shall we open REPL buffer in split window? +if !exists( 'g:slimv_repl_split' ) + let g:slimv_repl_split = 1 +endif + +" Wrap long lines in REPL buffer +if !exists( 'g:slimv_repl_wrap' ) + let g:slimv_repl_wrap = 1 +endif + +" Alternative value (in msec) for 'updatetime' while the REPL buffer is changing +if !exists( 'g:slimv_updatetime' ) + let g:slimv_updatetime = 200 +endif + +" Build client command (if not given in vimrc) +if !exists( 'g:slimv_client' ) + let g:slimv_client = SlimvMakeClientCommand() +endif + +" Slimv keybinding set (0 = no keybindings) +if !exists( 'g:slimv_keybindings' ) + let g:slimv_keybindings = 1 +endif + +" Append Slimv menu to the global menu (0 = no menu) +if !exists( 'g:slimv_menu' ) + let g:slimv_menu = 1 +endif + +" Build the ctags command capable of generating lisp tags file +" The command can be run with execute 'silent !' . g:slimv_ctags +if !exists( 'g:slimv_ctags' ) + let ctags = split( globpath( '$vim,$vimruntime', 'ctags.exe' ), '\n' ) + if len( ctags ) > 0 + " Remove -a option to regenerate every time + let g:slimv_ctags = '"' . ctags[0] . '" -a --language-force=lisp *.lisp *.clj' + endif +endif + +" Package/namespace handling +if !exists( 'g:slimv_package' ) + let g:slimv_package = 1 +endif + + +" ===================================================================== +" Template definitions +" ===================================================================== + +if !exists( 'g:slimv_template_pprint' ) + if SlimvGetFiletype() == 'clojure' + let g:slimv_template_pprint = '(doseq [o %1] (println o))' + else + let g:slimv_template_pprint = '(dolist (o %1)(pprint o))' + endif +endif + +if !exists( 'g:slimv_template_undefine' ) + if SlimvGetFiletype() == 'clojure' + let g:slimv_template_undefine = "(ns-unmap 'user '" . "%1)" + else + let g:slimv_template_undefine = '(fmakunbound (read-from-string "%1"))' + endif +endif + +if !exists( 'g:slimv_template_describe' ) + let g:slimv_template_describe = '(describe (read-from-string "%1"))' +endif + +if !exists( 'g:slimv_template_trace' ) + let g:slimv_template_trace = '(trace %1)' +endif + +if !exists( 'g:slimv_template_untrace' ) + let g:slimv_template_untrace = '(untrace %1)' +endif + +if !exists( 'g:slimv_template_profile' ) + if b:SlimvImplementation() == 'sbcl' + let g:slimv_template_profile = '(sb-profile:profile %1)' + else + let g:slimv_template_profile = '(mon:monitor %1)' + endif +endif + +if !exists( 'g:slimv_template_unprofile' ) + if b:SlimvImplementation() == 'sbcl' + let g:slimv_template_unprofile = '(sb-profile:unprofile %1)' + else + let g:slimv_template_unprofile = '(mon:unmonitor %1)' + endif +endif + +if !exists( 'g:slimv_template_unprofile_all' ) + if b:SlimvImplementation() == 'sbcl' + let g:slimv_template_unprofile_all = '(sb-profile:unprofile)' + else + let g:slimv_template_unprofile_all = '(mon:unmonitor)' + endif +endif + +if !exists( 'g:slimv_template_show_profiled' ) + if b:SlimvImplementation() == 'sbcl' + let g:slimv_template_show_profiled = '(sb-profile:profile)' + else + let g:slimv_template_show_profiled = '(pprint mon:*monitored-functions*)' + endif +endif + +if !exists( 'g:slimv_template_profile_report' ) + if b:SlimvImplementation() == 'sbcl' + let g:slimv_template_profile_report = '(sb-profile:report)' + else + let g:slimv_template_profile_report = '(mon:report-monitoring)' + endif +endif + +if !exists( 'g:slimv_template_profile_reset' ) + if b:SlimvImplementation() == 'sbcl' + let g:slimv_template_profile_reset = '(sb-profile:reset)' + else + let g:slimv_template_profile_reset = '(mon:reset-all-monitoring)' + endif +endif + +if !exists( 'g:slimv_template_disassemble' ) + let g:slimv_template_disassemble = "(disassemble #'%1)" +endif + +if !exists( 'g:slimv_template_inspect' ) + if SlimvGetFiletype() == 'clojure' + let g:slimv_template_inspect = "(print-doc #'" . "%1)" + else + let g:slimv_template_inspect = '(inspect %1)' + endif +endif + +if !exists( 'g:slimv_template_apropos' ) + if SlimvGetFiletype() == 'clojure' + let g:slimv_template_apropos = '(find-doc "%1")' + else + let g:slimv_template_apropos = '(apropos "%1")' + endif +endif + +if !exists( 'g:slimv_template_macroexpand' ) + if SlimvGetFiletype() == 'clojure' + let g:slimv_template_macroexpand = '%1' + else + let g:slimv_template_macroexpand = '(pprint %1)' + endif +endif + +if !exists( 'g:slimv_template_macroexpand_all' ) + if SlimvGetFiletype() == 'clojure' + let g:slimv_template_macroexpand_all = '%1' + else + let g:slimv_template_macroexpand_all = '(pprint %1)' + endif +endif + +if !exists( 'g:slimv_template_compile_file' ) +" let g:slimv_template_compile_file = '(compile-file "%1")' + let g:slimv_template_compile_file = + \ '(let ((fasl-file (compile-file "%1")))' . + \ ' (when (and %2 fasl-file) (load fasl-file)))' +endif + +if !exists( 'g:slimv_template_compile_string' ) + let g:slimv_template_compile_string = + \ '(funcall (compile nil (read-from-string (format nil "(~S () ~A)" ' . "'" . 'lambda "%1"))))' +endif + +if !exists( 'mapleader' ) + let mapleader = ',' +endif + + +" ===================================================================== +" Other non-global script variables +" ===================================================================== + +" Name of the REPL buffer inside Vim +let s:repl_name = g:slimv_repl_dir . g:slimv_repl_file + +" Lisp prompt in the last line +let s:prompt = '' + +" The last update time for the REPL buffer +let s:last_update = 0 + +" The last size of the REPL buffer +let s:last_size = 0 + +" The original value for 'updatetime' +let s:save_updatetime = &updatetime + + +" ===================================================================== +" General utility functions +" ===================================================================== + +" Display an error message +function SlimvError( msg ) + echohl ErrorMsg + echo a:msg + echohl None +endfunction + +" Display an error message and wait for ENTER +function SlimvErrorWait( msg ) + echohl ErrorMsg + let dummy = input( a:msg . " Press ENTER to continue." ) + echo "" + echohl None +endfunction + +" Position the cursor at the end of the REPL buffer +" Optionally mark this position in Vim mark 's' +function! SlimvEndOfReplBuffer( markpos, insert ) + if !g:slimv_repl_open + " User does not want to display REPL in Vim + return + endif + normal! G$ + if a:markpos + " Remember the end of the buffer: user may enter commands here + " Also remember the prompt, because the user may overwrite it + call setpos( "'s", [0, line('$'), col('$'), 0] ) + let s:prompt = getline( "'s" ) + if a:insert + " We are in insert mode, so we end up appending to the last line + startinsert! + endif + endif + set nomodified +endfunction + +" Reload the contents of the REPL buffer from the output file if changed +function! SlimvRefreshReplBuffer() +" if !g:slimv_repl_open || !g:slimv_repl_split + if !g:slimv_repl_open + " User does not want to display REPL in Vim + " or does not display it in a split window + return + endif + + let size = getfsize( s:repl_name ) + if size == s:last_size + " REPL output file did not change since the last refresh + if g:slimv_updatetime > 0 && s:last_update < localtime() - 1 + let &updatetime = s:save_updatetime + endif + return + endif + let s:last_size = size + + let repl_buf = bufnr( s:repl_name ) + if repl_buf == -1 + " REPL buffer not loaded + return + endif + let this_buf = bufnr( "%" ) + if repl_buf != this_buf + " Switch to the REPL buffer/window + try + if g:slimv_repl_split + wincmd w + else + buf # + endif + catch /.*/ + " Some Vim versions give an E303 error here + " but we don't need a swapfile for the REPL buffer anyway + endtry + endif + + if g:slimv_updatetime > 0 + let &updatetime = g:slimv_updatetime + endif + let s:last_update = localtime() + + try + "execute "silent edit! " . s:repl_name + "silent execute "view! " . s:repl_name + execute "silent view! " . s:repl_name + catch /.*/ + " Oops, something went wrong, the buffer will not be refreshed this time + endtry + syntax on + setlocal autoread + let insert = 0 + if mode() == 'i' || mode() == 'I' + let insert = 1 + endif + call SlimvEndOfReplBuffer( 0, insert ) + + if repl_buf != this_buf + " Switch back to the caller buffer/window + if g:slimv_repl_split + wincmd w + else + buf # + endif + endif +endfunction + +" This function re-triggers the CursorHold event +" after refreshing the REPL buffer +function! SlimvTimer() + call SlimvRefreshReplBuffer() + if g:slimv_repl_open + if mode() == 'i' || mode() == 'I' + " Put an incomplete '' command and an Esc into the typeahead buffer + call feedkeys("\x0F\e") + else + " Put an incomplete 'f' command and an Esc into the typeahead buffer + call feedkeys("f\e") + endif + endif +endfunction + +" Switch refresh mode on: +" refresh REPL buffer on frequent Vim events +function! SlimvRefreshModeOn() + set readonly + setlocal autoread + execute "au CursorMoved * :call SlimvRefreshReplBuffer()" + execute "au CursorMovedI * :call SlimvRefreshReplBuffer()" + execute "au CursorHold * :call SlimvTimer()" + execute "au CursorHoldI * :call SlimvTimer()" + call SlimvRefreshReplBuffer() +endfunction + +" Switch refresh mode off +function! SlimvRefreshModeOff() + execute "au! CursorMoved" + execute "au! CursorMovedI" + execute "au! CursorHold" + execute "au! CursorHoldI" + set noreadonly + + " Remember the end of the buffer and the actual prompt + call setpos( "'s", [0, line('$'), col('$'), 0] ) + let s:prompt = getline( "'s" ) +endfunction + +" Called when entering REPL buffer +function! SlimvReplEnter() + call SlimvAddReplMenu() + execute "au FileChangedRO " . g:slimv_repl_file . " :call SlimvRefreshModeOff()" + call SlimvRefreshModeOn() + call SlimvEndOfReplBuffer( 1, 0 ) +endfunction + +" Called when leaving REPL buffer +function! SlimvReplLeave() + try + " Check if REPL menu exists, then remove it + aunmenu REPL + unmap \ + catch /.*/ + " REPL menu not found, we cannot remove it + endtry + call SlimvRefreshModeOn() + call SlimvEndOfReplBuffer( 1, 0 ) +endfunction + +" Open a new REPL buffer or switch to the existing one +function! SlimvOpenReplBuffer() + "TODO: check if this works without 'set hidden' + let repl_buf = bufnr( s:repl_name ) + if repl_buf == -1 + " Create a new REPL buffer + if g:slimv_repl_split + execute "silent sview! " . s:repl_name + else + execute "silent view! " . s:repl_name + endif + else + if g:slimv_repl_split + " REPL buffer is already created. Check if it is open in a window + let repl_win = bufwinnr( repl_buf ) + if repl_win == -1 + " Create windows + execute "silent sview! " . s:repl_name + else + " Switch to the REPL window + if winnr() != repl_win + execute repl_win . "wincmd w" + endif + endif + else + execute "buffer " . repl_buf + endif + endif + + " Add keybindings valid only for the REPL buffer + inoremap :call SlimvSendCommand(0) + inoremap :call SlimvSendCommand(1) + inoremap :call SlimvHandleUp() + inoremap :call SlimvHandleDown() + + if exists( 'g:paredit_loaded' ) + inoremap PareditBackspace(1) + else + inoremap SlimvHandleBS() + endif + + if g:slimv_keybindings == 1 + noremap . :call SlimvSendCommand(0) + noremap / :call SlimvSendCommand(1) + noremap :call SlimvPreviousCommand() + noremap :call SlimvNextCommand() + noremap z :call SlimvRefresh() + elseif g:slimv_keybindings == 2 + noremap rs :call SlimvSendCommand(0) + noremap ro :call SlimvSendCommand(1) + noremap rp :call SlimvPreviousCommand() + noremap rn :call SlimvNextCommand() + noremap rr :call SlimvRefresh() + endif + + if g:slimv_repl_wrap + inoremap g + inoremap g + noremap gk + noremap gj + noremap g + noremap g + noremap k gk + noremap j gj + noremap 0 g0 + noremap $ g$ + set wrap + endif + + hi SlimvNormal term=none cterm=none gui=none + hi SlimvCursor term=reverse cterm=reverse gui=reverse + + " Add autocommands specific to the REPL buffer + execute "au FileChangedShell " . g:slimv_repl_file . " :call SlimvRefreshReplBuffer()" + execute "au FocusGained " . g:slimv_repl_file . " :call SlimvRefreshReplBuffer()" + execute "au BufEnter " . g:slimv_repl_file . " :call SlimvReplEnter()" + execute "au BufLeave " . g:slimv_repl_file . " :call SlimvReplLeave()" + + filetype on + setlocal autoread + redraw + let s:last_size = 0 + + call SlimvSend( ['SLIMV::OUTPUT::' . s:repl_name ], 0 ) + call SlimvRefreshReplBuffer() +endfunction + +" Select symbol under cursor and copy it to register 's' +function! SlimvSelectSymbol() + "TODO: can we use expand('') here? + normal! viw"sy +endfunction + +" Select extended symbol under cursor and copy it to register 's' +function! SlimvSelectSymbolExt() + let oldkw = &iskeyword + if SlimvGetFiletype() == 'clojure' + setlocal iskeyword+=~,#,&,\|,{,},!,? + else + setlocal iskeyword+=~,#,&,\|,{,},[,],!,? + endif + normal! viw"sy + let &iskeyword = oldkw +endfunction + +" Select bottom level form the cursor is inside and copy it to register 's' +function! SlimvSelectForm() + normal! va(o + " Handle '() or #'() etc. type special syntax forms + " TODO: what to do with ` operator? + let c = col( '.' ) - 2 + while c > 0 && match( ' \t()', getline( '.' )[c] ) < 0 + normal! h + let c = c - 1 + endwhile + normal! "sy +endfunction + +" Select top level form the cursor is inside and copy it to register 's' +function! SlimvSelectToplevelForm() + normal! 99[( + call SlimvSelectForm() +endfunction + +" Return the contents of register 's' +function! SlimvGetSelection() + return getreg( '"s' ) +endfunction + +" Find the given string backwards and put it in front of the current selection +" if it is a valid Lisp form (i.e. not inside comment or string) +function! SlimvFindAddSel( string ) + normal ms + let found = 0 + while search( '(\s*' . a:string . '\s', 'bcW' ) + " Search for the previos occurrence + if synIDattr( synID( line('.'), col('.'), 0), 'name' ) !~ '[Ss]tring\|[Cc]omment' + " It is not inside a comment or string + let found = 1 + break + endif + endwhile + if found + " Put the form just found at the beginning of the selection + let sel = SlimvGetSelection() + normal! v%"sy + call setreg( '"s', SlimvGetSelection() . "\n" . sel ) + normal `s + endif +endfunction + +" Find and add language specific package/namespace definition before the +" cursor position and if exists then add it in front of the current selection +function! SlimvFindPackage() + if !g:slimv_package + return + endif + if SlimvGetFiletype() == 'clojure' + call SlimvFindAddSel( 'in-ns' ) + else + call SlimvFindAddSel( 'in-package' ) + endif +endfunction + +" Send argument to Lisp server for evaluation +function! SlimvSend( args, open_buffer ) + call SlimvClientCommand() + if g:slimv_client == '' + return + endif + + let repl_buf = bufnr( s:repl_name ) + let repl_win = bufwinnr( repl_buf ) + + if a:open_buffer && ( repl_buf == -1 || ( g:slimv_repl_split && repl_win == -1 ) ) + call SlimvOpenReplBuffer() + endif + + " Build a temporary file from the form to be evaluated + let ar = [] + let i = 0 + while i < len( a:args ) + call extend( ar, split( a:args[i], '\n' ) ) + let i = i + 1 + endwhile + + let tmp = tempname() + try + call writefile( ar, tmp ) + + " Send the file to the client for evaluation + if g:slimv_debug_client == 0 + let result = system( g:slimv_client . ' -f ' . tmp ) + else + execute '!' . g:slimv_client . ' -f ' . tmp + endif + finally + call delete(tmp) + endtry + + if a:open_buffer + " Wait a little for the REPL output and refresh REPL buffer + " then return to the caller buffer/window + call SlimvRefreshReplBuffer() + if g:slimv_repl_split && repl_win == -1 + execute "normal! \p" + elseif repl_buf == -1 + buf # + endif + endif +endfunction + +" Eval arguments in Lisp REPL +function! SlimvEval( args ) + call SlimvSend( a:args, g:slimv_repl_open ) +endfunction + +" Send interrupt command to REPL +function! SlimvInterrupt() + call SlimvSend( ['SLIMV::INTERRUPT'], 0 ) + call SlimvRefreshReplBuffer() + startinsert! +endfunction + +" Set command line after the prompt +function! SlimvSetCommandLine( cmd ) + let line = getline( "." ) + if line( "." ) == line( "'s" ) + " The prompt is in the line marked with 's + let promptlen = len( s:prompt ) + else + let promptlen = 0 + endif + if len( line ) > promptlen + let line = strpart( line, 0, promptlen ) + endif + let line = line . a:cmd + call setline( ".", line ) + call SlimvEndOfReplBuffer( 0, 0 ) +endfunction + +" Add command list to the command history +function! SlimvAddHistory( cmd ) + if !exists( 'g:slimv_cmdhistory' ) + let g:slimv_cmdhistory = [] + endif + let i = 0 + while i < len( a:cmd ) + " Trim trailing whitespaces from the command + let command = substitute( a:cmd[i], "\\(.*[^ ]\\)\\s*", "\\1", "g" ) + call add( g:slimv_cmdhistory, command ) + let i = i + 1 + endwhile + let g:slimv_cmdhistorypos = len( g:slimv_cmdhistory ) +endfunction + +" Recall command from the command history at the marked position +function! SlimvRecallHistory() + if g:slimv_cmdhistorypos >= 0 && g:slimv_cmdhistorypos < len( g:slimv_cmdhistory ) + call SlimvSetCommandLine( g:slimv_cmdhistory[g:slimv_cmdhistorypos] ) + else + call SlimvSetCommandLine( "" ) + endif +endfunction + +" Count the opening and closing parens or brackets to determine if they match +function! s:GetParenCount( lines ) + let paren = 0 + let inside_string = 0 + let i = 0 + while i < len( a:lines ) + let inside_comment = 0 + let j = 0 + while j < len( a:lines[i] ) + if inside_string + " We are inside a string, skip parens, wait for closing '"' + if a:lines[i][j] == '"' && ( j < 1 || a:lines[i][j-1] != '\' ) + let inside_string = 0 + endif + elseif inside_comment + " We are inside a comment, skip parens, wait for end of line + else + " We are outside of strings and comments, now we shall count parens + if a:lines[i][j] == '"' + let inside_string = 1 + endif + if a:lines[i][j] == ';' + let inside_comment = 1 + endif + if a:lines[i][j] == '(' || a:lines[i][j] == '[' + let paren = paren + 1 + endif + if a:lines[i][j] == ')' || a:lines[i][j] == ']' + let paren = paren - 1 + if paren < 0 + " Oops, too many closing parens in the middle + return paren + endif + endif + endif + let j = j + 1 + endwhile + let i = i + 1 + endwhile + return paren +endfunction + +" Send command line to REPL buffer +" Arguments: close = add missing closing parens +function! SlimvSendCommand( close ) + call SlimvRefreshModeOn() + let lastline = line( "'s" ) + let lastcol = col( "'s" ) + if lastline > 0 + if line( "." ) >= lastline + " Trim the prompt from the beginning of the command line + " The user might have overwritten some parts of the prompt + let cmdline = getline( lastline ) + let c = 0 + while c < lastcol - 1 && cmdline[c] == s:prompt[c] + let c = c + 1 + endwhile + let cmd = [ strpart( getline( lastline ), c ) ] + + " Build a possible multi-line command + let l = lastline + 1 + while l <= line("$") - 1 + call add( cmd, strpart( getline( l ), 0) ) + let l = l + 1 + endwhile + + " Count the number of opening and closing braces + let paren = s:GetParenCount( cmd ) + if paren > 0 && a:close + " Expression is not finished yet, add missing parens and evaluate it + while paren > 0 + let cmd[len(cmd)-1] = cmd[len(cmd)-1] . ')' + let paren = paren - 1 + endwhile + endif + if paren == 0 + " Expression finished, let's evaluate it + " but first add it to the history + call SlimvAddHistory( cmd ) + call SlimvEval( cmd ) + elseif paren < 0 + " Too many closing braces + call SlimvErrorWait( "Too many closing parens found." ) + else + " Expression is not finished yet, indent properly and wait for completion + " Indentation works only if lisp indentation is switched on + let indent = '' + let i = lispindent( '.' ) + while i > 0 + let indent = indent . ' ' + let i = i - 1 + endwhile + call setline( ".", indent ) + call SlimvEndOfReplBuffer( 0, 0 ) + endif + endif + else + call append( '$', "Slimv error: previous EOF mark not found, re-enter last form:" ) + call append( '$', "" ) + call SlimvEndOfReplBuffer( 1, 0 ) + endif +endfunction + +" Close current top level form by adding the missing parens +function! SlimvCloseForm() + let l2 = line( '.' ) + normal! 99[( + let l1 = line( '.' ) + let form = [] + let l = l1 + while l <= l2 + call add( form, getline( l ) ) + let l = l + 1 + endwhile + let paren = s:GetParenCount( form ) + if paren < 0 + " Too many closing braces + call SlimvErrorWait( "Too many closing parens found." ) + elseif paren > 0 + " Add missing parens + let lastline = getline( l2 ) + while paren > 0 + let lastline = lastline . ')' + let paren = paren - 1 + endwhile + call setline( l2, lastline ) + endif + normal! % +endfunction + +" Handle insert mode 'Backspace' keypress in the REPL buffer +function! SlimvHandleBS() + if line( "." ) == line( "'s" ) && col( "." ) <= col( "'s" ) + " No BS allowed before the previous EOF mark + return "" + else + return "\" + endif +endfunction + +" Recall previous command from command history +function! s:PreviousCommand() + if exists( 'g:slimv_cmdhistory' ) && g:slimv_cmdhistorypos > 0 + let g:slimv_cmdhistorypos = g:slimv_cmdhistorypos - 1 + call SlimvRecallHistory() + endif +endfunction + +" Recall next command from command history +function! s:NextCommand() + if exists( 'g:slimv_cmdhistory' ) && g:slimv_cmdhistorypos < len( g:slimv_cmdhistory ) + let g:slimv_cmdhistorypos = g:slimv_cmdhistorypos + 1 + call SlimvRecallHistory() + else + call SlimvSetCommandLine( "" ) + endif +endfunction + +" Handle insert mode 'Up' keypress in the REPL buffer +function! SlimvHandleUp() + if line( "." ) >= line( "'s" ) + call s:PreviousCommand() + else + normal! gk + endif +endfunction + +" Handle insert mode 'Down' keypress in the REPL buffer +function! SlimvHandleDown() + if line( "." ) >= line( "'s" ) + call s:NextCommand() + else + normal! gj + endif +endfunction + +" Go to command line and recall previous command from command history +function! SlimvPreviousCommand() + call SlimvEndOfReplBuffer( 0, 0 ) + if line( "." ) >= line( "'s" ) + call s:PreviousCommand() + endif +endfunction + +" Go to command line and recall next command from command history +function! SlimvNextCommand() + call SlimvEndOfReplBuffer( 0, 0 ) + if line( "." ) >= line( "'s" ) + call s:NextCommand() + endif +endfunction + +" Handle interrupt (Ctrl-C) keypress in the REPL buffer +function! SlimvHandleInterrupt() + call SlimvSend( ['SLIMV::INTERRUPT'], 0 ) + call SlimvRefreshReplBuffer() +endfunction + +" Start and connect slimv server +" This is a quite dummy function that just evaluates the empty string +function! SlimvConnectServer() + "call SlimvEval( [''] ) + call SlimvSend( ['SLIMV::OUTPUT::' . s:repl_name ], 0 ) +endfunction + +" Refresh REPL buffer continuously +function! SlimvRefresh() + if bufnr( s:repl_name ) == -1 + " REPL not opened, no need to refresh + return + endif + if bufnr( s:repl_name ) != bufnr( "%" ) + " REPL is not the current window, activate it + call SlimvOpenReplBuffer() + endif +endfunction + +" Get the last region (visual block) +function! SlimvGetRegion() range + if mode() == 'v' || mode() == 'V' + let lines = getline( a:firstline, a:lastline ) + let firstcol = col( a:firstline ) - 1 + let lastcol = col( a:lastline ) - 2 + else + let lines = getline( "'<", "'>" ) + let firstcol = col( "'<" ) - 1 + let lastcol = col( "'>" ) - 2 + endif + if lastcol >= 0 + let lines[len(lines)-1] = lines[len(lines)-1][ : lastcol] + else + let lines[len(lines)-1] = '' + endif + let lines[0] = lines[0][firstcol : ] + + " Find and add package/namespace definition in front of the region + if g:slimv_package + call setreg( '"s', '' ) + call SlimvFindPackage() + let sel = SlimvGetSelection() + if sel != '' + let lines = [sel] + lines + endif + endif + return lines +endfunction + +" Eval buffer lines in the given range +function! SlimvEvalRegion() range + let lines = SlimvGetRegion() + call SlimvEval( lines ) +endfunction + +" Eval contents of the 's' register +function! SlimvEvalSelection() + let lines = [SlimvGetSelection()] + call SlimvEval( lines ) +endfunction + +" Eval Lisp form. +" Form given in the template is passed to Lisp without modification. +function! SlimvEvalForm( template ) + let lines = [a:template] + call SlimvEval( lines ) +endfunction + +" Eval Lisp form, with the given parameter substituted in the template. +" %1 string is substituted with par1 +function! SlimvEvalForm1( template, par1 ) + let p1 = escape( a:par1, '&' ) + let temp1 = substitute( a:template, '%1', p1, 'g' ) + let lines = [temp1] + call SlimvEval( lines ) +endfunction + +" Eval Lisp form, with the given parameters substituted in the template. +" %1 string is substituted with par1 +" %2 string is substituted with par2 +function! SlimvEvalForm2( template, par1, par2 ) + let p1 = escape( a:par1, '&' ) + let p2 = escape( a:par2, '&' ) + let temp1 = substitute( a:template, '%1', p1, 'g' ) + let temp2 = substitute( temp1, '%2', p2, 'g' ) + let lines = [temp2] + call SlimvEval( lines ) +endfunction + + +" ===================================================================== +" Special functions +" ===================================================================== + +" Evaluate top level form at the cursor pos +function! SlimvEvalDefun() + call SlimvSelectToplevelForm() + call SlimvFindPackage() + call SlimvEvalSelection() +endfunction + +" Evaluate the whole buffer +function! SlimvEvalBuffer() + let lines = getline( 1, '$' ) + call SlimvEval( lines ) +endfunction + +" Evaluate last expression +function! SlimvEvalLastExp() + call SlimvSelectForm() + call SlimvFindPackage() + call SlimvEvalSelection() +endfunction + +" Evaluate and pretty print last expression +function! SlimvPprintEvalLastExp() + call SlimvSelectForm() + call SlimvFindPackage() + call SlimvEvalForm1( g:slimv_template_pprint, SlimvGetSelection() ) +endfunction + +" Evaluate expression entered interactively +function! SlimvInteractiveEval() + let e = input( 'Eval: ' ) + if e != '' + call SlimvEval([e]) + endif +endfunction + +" Undefine function +function! SlimvUndefineFunction() + call SlimvSelectSymbol() + call SlimvEvalForm1( g:slimv_template_undefine, SlimvGetSelection() ) +endfunction + +" --------------------------------------------------------------------- + +" General part of the various macroexpand functions +function! SlimvMacroexpandGeneral( command ) + normal! 99[( + let line = getline( "." ) + if match( line, '(\s*defmacro\s' ) < 0 + " The form does not contain 'defmacro', put it in a macroexpand block + call SlimvSelectForm() + let m = "(" . a:command . " '" . SlimvGetSelection() . ")" + else + " The form is a 'defmacro', so do a macroexpand from the macro name and parameters + if SlimvGetFiletype() == 'clojure' + " Some Vim configs (e.g. matchit.vim) include the trailing ']' after '%' in Visual mode + normal! vt[%ht]"sy + else + normal! vt(])"sy + endif + let m = SlimvGetSelection() . '))' + let m = substitute( m, "defmacro\\s*", a:command . " '(", 'g' ) + if SlimvGetFiletype() == 'clojure' + " Remove opening bracket from the parameter list + " TODO: fix this for multi-line macro header + let m = substitute( m, "\\[\\(.*\\)", "\\1", 'g' ) + else + " Remove opening brace from the parameter list + " The nice regular expression below says: remove the third '(' + " ( + something + ( + something + ( + something -> ( + something + ( + something + something + " TODO: fix this for multi-line macro header + let m = substitute( m, "\\(([^()]*([^()]*\\)(\\(.*\\)", "\\1\\2", 'g' ) + endif + endif + return m +endfunction + +" Macroexpand-1 the current top level form +function! SlimvMacroexpand() + let m = SlimvMacroexpandGeneral( "macroexpand-1" ) + call SlimvEvalForm1( g:slimv_template_macroexpand, m ) +endfunction + +" Macroexpand the current top level form +function! SlimvMacroexpandAll() + let m = SlimvMacroexpandGeneral( "macroexpand" ) + call SlimvEvalForm1( g:slimv_template_macroexpand_all, m ) +endfunction + +" Switch trace on for the selected function +function! SlimvTrace() + call SlimvSelectSymbol() + let s = input( 'Trace: ', SlimvGetSelection() ) + echo s + if s != '' + call SlimvEvalForm1( g:slimv_template_trace, s ) + endif +endfunction + +" Switch trace off for the selected function +function! SlimvUntrace() + call SlimvSelectSymbol() + let s = input( 'Untrace: ', SlimvGetSelection() ) + if s != '' + call SlimvEvalForm1( g:slimv_template_untrace, s ) + endif +endfunction + +" Disassemble the selected function +function! SlimvDisassemble() + call SlimvSelectSymbol() + let s = input( 'Disassemble: ', SlimvGetSelection() ) + if s != '' + call SlimvEvalForm1( g:slimv_template_disassemble, s ) + endif +endfunction + +" Inspect symbol +function! SlimvInspect() + call SlimvSelectSymbol() + let s = input( 'Inspect: ', SlimvGetSelection() ) + if s != '' + call SlimvEvalForm1( g:slimv_template_inspect, s ) + endif +endfunction + +" --------------------------------------------------------------------- + +" Compile and load profiler +function! SlimvLoadProfiler() + if SlimvGetFiletype() == 'clojure' + call SlimvError( "No profiler support for Clojure." ) + elseif b:SlimvImplementation() == 'sbcl' + call SlimvError( "SBCL has a built-in profiler, no need to load it." ) + else + let profiler = split( globpath( &runtimepath, 'ftplugin/**/metering.lisp'), '\n' ) + if len( profiler ) > 0 + let filename = profiler[0] + let filename = substitute( filename, '\\', '/', 'g' ) + call SlimvEvalForm2( g:slimv_template_compile_file, filename, 'T' ) + else + call SlimvError( "metering.lisp is not found in the Vim ftplugin directory or below." ) + endif + endif +endfunction + +" Switch profiling on for the selected function +function! SlimvProfile() + if SlimvGetFiletype() == 'clojure' + call SlimvError( "No profiler support for Clojure." ) + else + call SlimvSelectSymbol() + let s = input( 'Profile: ', SlimvGetSelection() ) + if s != '' + call SlimvEvalForm1( g:slimv_template_profile, s ) + endif + endif +endfunction + +" Switch profiling off for the selected function +function! SlimvUnprofile() + if SlimvGetFiletype() == 'clojure' + call SlimvError( "No profiler support for Clojure." ) + else + call SlimvSelectSymbol() + let s = input( 'Unprofile: ', SlimvGetSelection() ) + if s != '' + call SlimvEvalForm1( g:slimv_template_unprofile, s ) + endif + endif +endfunction + +" Switch profiling completely off +function! SlimvUnprofileAll() + if SlimvGetFiletype() == 'clojure' + call SlimvError( "No profiler support for Clojure." ) + else + call SlimvEvalForm( g:slimv_template_unprofile_all ) + endif +endfunction + +" Display list of profiled functions +function! SlimvShowProfiled() + if SlimvGetFiletype() == 'clojure' + call SlimvError( "No profiler support for Clojure." ) + else + call SlimvEvalForm( g:slimv_template_show_profiled ) + endif +endfunction + +" Report profiling results +function! SlimvProfileReport() + if SlimvGetFiletype() == 'clojure' + call SlimvError( "No profiler support for Clojure." ) + else + call SlimvEvalForm( g:slimv_template_profile_report ) + endif +endfunction + +" Reset profiling counters +function! SlimvProfileReset() + if SlimvGetFiletype() == 'clojure' + call SlimvError( "No profiler support for Clojure." ) + else + call SlimvEvalForm( g:slimv_template_profile_reset ) + endif +endfunction + +" --------------------------------------------------------------------- + +" Compile the current top-level form +function! SlimvCompileDefun() + "TODO: handle double quote characters in form + call SlimvSelectToplevelForm() + call SlimvFindPackage() + call SlimvEvalForm1( g:slimv_template_compile_string, SlimvGetSelection() ) +endfunction + +" Compile and load whole file +function! SlimvCompileLoadFile() + let filename = fnamemodify( bufname(''), ':p' ) + let filename = substitute( filename, '\\', '/', 'g' ) + call SlimvEvalForm2( g:slimv_template_compile_file, filename, 'T' ) +endfunction + +" Compile whole file +function! SlimvCompileFile() + let filename = fnamemodify( bufname(''), ':p' ) + let filename = substitute( filename, '\\', '/', 'g' ) + call SlimvEvalForm2( g:slimv_template_compile_file, filename, 'NIL' ) +endfunction + +function! SlimvCompileRegion() range + "TODO: handle double quote characters in form + let lines = SlimvGetRegion() + let region = join( lines, ' ' ) + call SlimvEvalForm1( g:slimv_template_compile_string, region ) +endfunction + +" --------------------------------------------------------------------- + +" Describe the selected symbol +function! SlimvDescribeSymbol() + call SlimvSelectSymbol() + call SlimvEvalForm1( g:slimv_template_describe, SlimvGetSelection() ) +endfunction + +" Apropos of the selected symbol +function! SlimvApropos() + call SlimvSelectSymbol() + call SlimvEvalForm1( g:slimv_template_apropos, SlimvGetSelection() ) +endfunction + +" Generate tags file using ctags +function! SlimvGenerateTags() + if exists( 'g:slimv_ctags' ) && g:slimv_ctags != '' + execute 'silent !' . g:slimv_ctags + else + call SlimvError( "Copy ctags to the Vim path or define g:slimv_ctags." ) + endif +endfunction + +" --------------------------------------------------------------------- + +" Find word in the CLHS symbol database, with exact or partial match. +" Return either the first symbol found with the associated URL, +" or the list of all symbols found without the associated URL. +function! SlimvFindSymbol( word, exact, all, db, root, init ) + if a:word == '' + return [] + endif + if !a:all && a:init != [] + " Found something already at a previous db lookup, no need to search this db + return a:init + endif + let lst = a:init + let i = 0 + let w = tolower( a:word ) + if a:exact + while i < len( a:db ) + " Try to find an exact match + if a:db[i][0] == w + " No reason to check a:all here + return [a:db[i][0], a:root . a:db[i][1]] + endif + let i = i + 1 + endwhile + else + while i < len( a:db ) + " Try to find the symbol starting with the given word + let w2 = escape( w, '~' ) + if match( a:db[i][0], w2 ) == 0 + if a:all + call add( lst, a:db[i][0] ) + else + return [a:db[i][0], a:root . a:db[i][1]] + endif + endif + let i = i + 1 + endwhile + endif + + " Return whatever found so far + return lst +endfunction + +" Lookup word in Common Lisp Hyperspec +function! SlimvLookup( word ) + " First try an exact match + let w = a:word + let symbol = [] + while symbol == [] + let symbol = b:SlimvHyperspecLookup( w, 1, 0 ) + if symbol == [] + " Symbol not found, try a match on beginning of symbol name + let symbol = b:SlimvHyperspecLookup( w, 0, 0 ) + if symbol == [] + " We are out of luck, can't find anything + let msg = 'Symbol ' . w . ' not found. Hyperspec lookup word: ' + let val = '' + else + let msg = 'Hyperspec lookup word: ' + let val = symbol[0] + endif + " Ask user if this is that he/she meant + let w = input( msg, val ) + if w == '' + " OK, user does not want to continue + return + endif + let symbol = [] + endif + endwhile + if symbol != [] + " Symbol found, open HS page in browser + if match( symbol[1], ':' ) < 0 && exists( g:slimv_hs_root ) + let page = g:slimv_hs_root . symbol[1] + else + " URL is already a fully qualified address + let page = symbol[1] + endif + if exists( "g:slimv_browser_cmd" ) + " We have an given command to start the browser + silent execute '! ' . g:slimv_browser_cmd . ' ' . page + else + if g:slimv_windows + " Run the program associated with the .html extension + silent execute '! start ' . page + else + " On Linux it's not easy to determine the default browser + " Ask help from Python webbrowser package + let pycmd = "import webbrowser; webbrowser.open('" . page . "')" + silent execute '! ' . g:slimv_python . ' -c "' . pycmd . '"' + endif + endif + " This is needed especially when using text browsers + redraw! + endif +endfunction + +" Lookup current symbol in the Common Lisp Hyperspec +function! SlimvHyperspec() + call SlimvSelectSymbolExt() + call SlimvLookup( SlimvGetSelection() ) +endfunction + +" Complete function that uses the Hyperspec database +function! SlimvComplete( findstart, base ) + if a:findstart + " Locate the start of the symbol name + let line = getline( '.' ) + let start = col( '.' ) - 1 + while start > 0 && ( line[start - 1] =~ '\a' || match( '\*&', line[start - 1] ) >= 0 ) + let start -= 1 + endwhile + return start + else + " Find all symbols starting with "a:base" + let res = [] + let symbol = b:SlimvHyperspecLookup( a:base, 0, 1 ) + call sort( symbol ) + for m in symbol + if m =~ '^' . a:base + call add( res, m ) + endif + endfor + return res + endif +endfunction + +" Define complete function only if none is defined yet +if &omnifunc == '' + set omnifunc=SlimvComplete +endif + +" ===================================================================== +" Slimv keybindings +" ===================================================================== + +" can be set in .vimrc, it defaults here to ',' +" timeouts in 1000 msec by default, if this is too short, +" then increase 'timeoutlen' + +if g:slimv_keybindings == 1 + " Short (one-key) keybinding set + + noremap ) :call SlimvCloseForm() + inoremap 0 :call SlimvCloseForm() + noremap ( :call PareditToggle() + + noremap d :call SlimvEvalDefun() + noremap e :call SlimvEvalLastExp() + noremap E :call SlimvPprintEvalLastExp() + noremap r :call SlimvEvalRegion() + noremap b :call SlimvEvalBuffer() + noremap v :call SlimvInteractiveEval() + noremap u :call SlimvUndefineFunction() + + noremap 1 :call SlimvMacroexpand() + noremap m :call SlimvMacroexpandAll() + noremap t :call SlimvTrace() + noremap T :call SlimvUntrace() + noremap l :call SlimvDisassemble() + noremap i :call SlimvInspect() + + noremap D :call SlimvCompileDefun() + noremap L :call SlimvCompileLoadFile() + noremap F :call SlimvCompileFile() + noremap R :call SlimvCompileRegion() + + noremap O :call SlimvLoadProfiler() + noremap p :call SlimvProfile() + noremap P :call SlimvUnprofile() + noremap U :call SlimvUnprofileAll() + noremap ? :call SlimvShowProfiled() + noremap o :call SlimvProfileReport() + noremap x :call SlimvProfileReset() + + noremap s :call SlimvDescribeSymbol() + noremap a :call SlimvApropos() + noremap h :call SlimvHyperspec() + noremap ] :call SlimvGenerateTags() + + noremap c :call SlimvConnectServer() + +elseif g:slimv_keybindings == 2 + " Easy to remember (two-key) keybinding set + + " Edit commands + noremap tc :call SlimvCloseForm() + inoremap 0 :call SlimvCloseForm() + noremap (t :call PareditToggle() + + " Evaluation commands + noremap ed :call SlimvEvalDefun() + noremap ee :call SlimvEvalLastExp() + noremap ep :call SlimvPprintEvalLastExp() + noremap er :call SlimvEvalRegion() + noremap eb :call SlimvEvalBuffer() + noremap ei :call SlimvInteractiveEval() + noremap eu :call SlimvUndefineFunction() + + " Debug commands + noremap m1 :call SlimvMacroexpand() + noremap ma :call SlimvMacroexpandAll() + noremap dt :call SlimvTrace() + noremap du :call SlimvUntrace() + noremap dd :call SlimvDisassemble() + noremap di :call SlimvInspect() + + " Compile commands + noremap cd :call SlimvCompileDefun() + noremap cl :call SlimvCompileLoadFile() + noremap cf :call SlimvCompileFile() + noremap cr :call SlimvCompileRegion() + + " Profile commands + noremap pl :call SlimvLoadProfiler() + noremap pp :call SlimvProfile() + noremap pu :call SlimvUnprofile() + noremap pa :call SlimvUnprofileAll() + noremap ps :call SlimvShowProfiled() + noremap pr :call SlimvProfileReport() + noremap px :call SlimvProfileReset() + + " Documentation commands + noremap ds :call SlimvDescribeSymbol() + noremap da :call SlimvApropos() + noremap dh :call SlimvHyperspec() + noremap dt :call SlimvGenerateTags() + + " REPL commands + noremap rc :call SlimvConnectServer() + +endif + +" ===================================================================== +" Slimv menu +" ===================================================================== + +if g:slimv_menu == 1 + " Works only if 'wildcharm' is + ":map , :emenu Slimv. + if &wildcharm == 0 + set wildcharm= + endif + if &wildcharm != 0 + execute ':map , :emenu Slimv.' . nr2char( &wildcharm ) + endif + + amenu &Slimv.Edi&t.Close-&Form :call SlimvCloseForm() + imenu &Slimv.Edi&t.&Complete-Symbol + amenu &Slimv.Edi&t.&Paredit-Toggle :call PareditToggle() + + amenu &Slimv.&Evaluation.Eval-&Defun :call SlimvEvalDefun() + amenu &Slimv.&Evaluation.Eval-Last-&Exp :call SlimvEvalLastExp() + amenu &Slimv.&Evaluation.&Pprint-Eval-Last :call SlimvPprintEvalLastExp() + amenu &Slimv.&Evaluation.Eval-&Region :call SlimvEvalRegion() + amenu &Slimv.&Evaluation.Eval-&Buffer :call SlimvEvalBuffer() + amenu &Slimv.&Evaluation.Interacti&ve-Eval\.\.\. :call SlimvInteractiveEval() + amenu &Slimv.&Evaluation.&Undefine-Function :call SlimvUndefineFunction() + + amenu &Slimv.De&bugging.Macroexpand-&1 :call SlimvMacroexpand() + amenu &Slimv.De&bugging.&Macroexpand-All :call SlimvMacroexpandAll() + amenu &Slimv.De&bugging.&Trace\.\.\. :call SlimvTrace() + amenu &Slimv.De&bugging.U&ntrace\.\.\. :call SlimvUntrace() + amenu &Slimv.De&bugging.Disassemb&le\.\.\. :call SlimvDisassemble() + amenu &Slimv.De&bugging.&Inspect\.\.\. :call SlimvInspect() + + amenu &Slimv.&Compilation.Compile-&Defun :call SlimvCompileDefun() + amenu &Slimv.&Compilation.Compile-&Load-File :call SlimvCompileLoadFile() + amenu &Slimv.&Compilation.Compile-&File :call SlimvCompileFile() + amenu &Slimv.&Compilation.Compile-&Region :call SlimvCompileRegion() + + amenu &Slimv.&Profiling.&Load-Profiler :call SlimvLoadProfiler() + amenu &Slimv.&Profiling.&Profile\.\.\. :call SlimvProfile() + amenu &Slimv.&Profiling.&Unprofile\.\.\. :call SlimvUnprofile() + amenu &Slimv.&Profiling.Unprofile-&All :call SlimvUnprofileAll() + amenu &Slimv.&Profiling.&Show-Profiled :call SlimvShowProfiled() + amenu &Slimv.&Profiling.-ProfilingSep- : + amenu &Slimv.&Profiling.Profile-Rep&ort :call SlimvProfileReport() + amenu &Slimv.&Profiling.Profile-&Reset :call SlimvProfileReset() + + amenu &Slimv.&Documentation.Describe-&Symbol :call SlimvDescribeSymbol() + amenu &Slimv.&Documentation.&Apropos :call SlimvApropos() + amenu &Slimv.&Documentation.&Hyperspec :call SlimvHyperspec() + imenu &Slimv.&Documentation.&Complete-Symbol + amenu &Slimv.&Documentation.Generate-&Tags :call SlimvGenerateTags() + + amenu &Slimv.&Repl.&Connect-Server :call SlimvConnectServer() +endif + +" Add REPL menu. This menu exist only for the REPL buffer. +function SlimvAddReplMenu() + if &wildcharm != 0 + execute ':map \ :emenu REPL.' . nr2char( &wildcharm ) + endif + + amenu &REPL.Send-&Input :call SlimvSendCommand(0) + amenu &REPL.Cl&ose-Send-Input :call SlimvSendCommand(1) + amenu &REPL.Interrup&t-Lisp-Process :call SlimvInterrupt() + amenu &REPL.-REPLSep- : + amenu &REPL.&Previous-Input :call SlimvPreviousCommand() + amenu &REPL.&Next-Input :call SlimvNextCommand() + amenu &REPL.&Refresh :call SlimvRefresh() +endfunction + diff -r e0f13b88e80e -r c4d3b4507707 vim/bundle/slimv/indent/clojure.vim --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vim/bundle/slimv/indent/clojure.vim Fri Nov 12 18:30:35 2010 -0500 @@ -0,0 +1,20 @@ +" clojure.vim: +" Clojure indent plugin for Slimv +" Version: 0.5.4 +" Last Change: 15 Nov 2009 +" Maintainer: Tamas Kovacs +" License: This file is placed in the public domain. +" No warranty, express or implied. +" *** *** Use At-Your-Own-Risk! *** *** +" +" ===================================================================== +" +" Load Once: +if exists("b:did_indent") + finish +endif + +runtime indent/**/lisp.vim + +set lisp + diff -r e0f13b88e80e -r c4d3b4507707 vim/bundle/slimv/plugin/paredit.vim --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vim/bundle/slimv/plugin/paredit.vim Fri Nov 12 18:30:35 2010 -0500 @@ -0,0 +1,1226 @@ +" paredit.vim: +" Paredit mode for Slimv +" Version: 0.7.1 +" Last Change: 07 Nov 2010 +" Maintainer: Tamas Kovacs +" License: This file is placed in the public domain. +" No warranty, express or implied. +" *** *** Use At-Your-Own-Risk! *** *** +" +" ===================================================================== +" +" Load Once: +if &cp || exists( 'g:paredit_loaded' ) + finish +endif + +let g:paredit_loaded = 1 + +" ===================================================================== +" Global variable definitions +" ===================================================================== + +" Paredit mode selector +if !exists( 'g:paredit_mode' ) + let g:paredit_mode = 1 +endif + +"TODO: automatic indentation +" Automatic indentation after some editing commands +"if !exists( 'g:paredit_autoindent' ) +" let g:paredit_autoindent = 1 +"endif + +" Match delimiter this number of lines before and after cursor position +if !exists( 'g:paredit_matchlines' ) + let g:paredit_matchlines = 100 +endif + +" Use short keymaps, i.e. J instead of J +if !exists( 'g:paredit_shortmaps' ) + let g:paredit_shortmaps = 0 +endif + +" ===================================================================== +" Other variable definitions +" ===================================================================== + +" Skip matches inside string or comment +let s:skip_c = 'synIDattr(synID(line("."), col("."), 0), "name") =~ "[Cc]omment"' +let s:skip_sc = 'synIDattr(synID(line("."), col("."), 0), "name") =~ "[Ss]tring\\|[Cc]omment"' + +" Regular expressions to identify special characters combinations used by paredit +"TODO: add curly brace +let s:any_matched_char = '(\|)\|\[\|\]\|\"' +let s:any_matched_pair = '()\|\[\]\|\"\"' +let s:any_opening_char = '(\|\[' +let s:any_closing_char = ')\|\]' +let s:any_openclose_char = '(\|\[\|)\|\]' +let s:any_wsopen_char = '\s\|(\|\[' +let s:any_wsclose_char = '\s\|)\|\]' +let s:any_macro_prefix = "'" . '\|`\|#\|@\|\~' + +" Repeat count for some remapped edit functions (like 'd') +let s:repeat = 0 + +let s:yank_pos = [] + +" ===================================================================== +" General utility functions +" ===================================================================== + +" Buffer specific initialization +function! PareditInitBuffer() + if g:paredit_mode + " Paredit mode is on: add buffer specific keybindings + inoremap ( PareditInsertOpening('(',')') + inoremap ) PareditInsertClosing('(',')') + inoremap [ PareditInsertOpening('[',']') + inoremap ] PareditInsertClosing('[',']') + inoremap " PareditInsertQuotes() + inoremap PareditBackspace(0) + inoremap PareditDel() + nnoremap ( :call PareditFindOpening('(',')',0) + nnoremap ) :call PareditFindClosing('(',')',0) + vnoremap ( :call PareditFindOpening('(',')',1) + vnoremap ) :call PareditFindClosing('(',')',1) + nnoremap x :call PareditEraseFwd() + nnoremap :call PareditEraseFwd() + nnoremap X :call PareditEraseBck() + nnoremap s :call PareditEraseFwd()i + nnoremap D v$:call PareditDelete(visualmode(),1) + nnoremap C v$:call PareditChange(visualmode(),1) + nnoremap d :call PareditSetDelete(v:count)g@ + vnoremap d :call PareditDelete(visualmode(),1) + vnoremap x :call PareditDelete(visualmode(),1) + vnoremap :call PareditDelete(visualmode(),1) + nnoremap c :set opfunc=PareditChangeg@ + vnoremap c :call PareditChange(visualmode(),1) + nnoremap dd :call PareditDeleteLines() + nnoremap cc :call PareditChangeLines() + nnoremap p :call PareditPut('p') + nnoremap P :call PareditPut('P') + nnoremap w( :call PareditWrap('(',')') + vnoremap w( :call PareditWrapSelection('(',')') + nnoremap w[ :call PareditWrap('[',']') + vnoremap w[ :call PareditWrapSelection('[',']') + nnoremap w" :call PareditWrap('"','"') + vnoremap w" :call PareditWrapSelection('"','"') + + if g:paredit_shortmaps + " Shorter keymaps: old functionality of KEY is remapped to KEY + nnoremap < :call PareditMoveLeft() + nnoremap > :call PareditMoveRight() + nnoremap O :call PareditSplit() + nnoremap J :call PareditJoin() + nnoremap W :call PareditWrap() + vnoremap W :call PareditWrapSelection() + nnoremap S :call PareditSplice() + nnoremap < :normal! < + nnoremap > :normal! > + nnoremap O :normal! O + nnoremap J :normal! J + nnoremap W :normal! W + vnoremap W :normal! W + nnoremap S :normal! S + else + " Longer keymaps with prefix + nnoremap S V:call PareditChange(visualmode(),1) + nnoremap < :call PareditMoveLeft() + nnoremap > :call PareditMoveRight() + nnoremap O :call PareditSplit() + nnoremap J :call PareditJoin() + nnoremap W :call PareditWrap('(',')') + vnoremap W :call PareditWrapSelection('(',')') + nnoremap S :call PareditSplice() + endif + else + " Paredit mode is off: remove keybindings + iunmap ( + iunmap ) + iunmap [ + iunmap ] + iunmap " + iunmap + iunmap + unmap ( + unmap ) + unmap x + unmap + unmap X + unmap s + unmap D + unmap C + unmap d + unmap c + unmap dd + unmap cc + endif +endfunction + +" General Paredit operator function +function! PareditOpfunc( func, type, visualmode ) + let sel_save = &selection + let ve_save = &virtualedit + set virtualedit=all + let reg_save = @@ + + if a:visualmode " Invoked from Visual mode, use '< and '> marks. + silent exe "normal! `<" . a:type . "`>" + elseif a:type == 'line' + let &selection = "inclusive" + silent exe "normal! '[V']" + elseif a:type == 'block' + let &selection = "inclusive" + silent exe "normal! `[\`]" + else + let &selection = "inclusive" + silent exe "normal! `[v`]" + endif + + if !g:paredit_mode || a:visualmode && a:type == 'block' || a:type == "\" + " Block mode is too difficult to handle at the moment + silent exe "normal! d" + let putreg = getreg( '"' ) + else + silent exe "normal! y" + let putreg = getreg( '"' ) + + " Find and keep unbalanced matched characters in the region + let matched = s:GetMatchedChars( putreg, s:InsideString( "'<" ), s:InsideComment( "'<" ) ) + let matched = s:Unbalanced( matched ) + let matched = substitute( matched, '\s', '', 'g' ) + + if matched == '' + silent exe "normal! gvx" + else + silent exe "normal! gvc" . matched + silent exe "normal! l" + endif + endif + + let &selection = sel_save + let &virtualedit = ve_save + let @@ = reg_save + call setreg( '"', putreg ) +endfunction + +" Set delete mode also saving repeat count +function! PareditSetDelete( count ) + let s:repeat = a:count + set opfunc=PareditDelete +endfunction + +" General delete operator handling +function! PareditDelete( type, ... ) + call PareditOpfunc( 'd', a:type, a:0 ) + if s:repeat > 1 + call feedkeys( (s:repeat-1) . "." ) + endif + let s:repeat = 0 +endfunction + +" General change operator handling +function! PareditChange( type, ... ) + call PareditOpfunc( 'c', a:type, a:0 ) + startinsert +endfunction + +" Delete v:count number of lines +function! PareditDeleteLines() + if v:count > 1 + silent exe "normal! V" . (v:count-1) . "j\" + else + silent exe "normal! V\" + endif + call PareditDelete(visualmode(),1) +endfunction + +" Change v:count number of lines +function! PareditChangeLines() + if v:count > 1 + silent exe "normal! V" . (v:count-1) . "j\" + else + silent exe "normal! V\" + endif + call PareditChange(visualmode(),1) +endfunction + +" Paste text from put register in a balanced way +function! PareditPut( cmd ) + let reg_save = @@ + let putreg = getreg( '"' ) + + " Find unpaired matched characters by eliminating paired ones + let matched = s:GetMatchedChars( putreg, s:InsideString( '.' ), s:InsideComment( '.' ) ) + let matched = s:Unbalanced( matched ) + + " Replace all unpaired matched characters with a space in order to keep balance + let i = 0 + while i < len( putreg ) + if matched[i] !~ '\s' + let putreg = strpart( putreg, 0, i ) . ' ' . strpart( putreg, i+1 ) + endif + let i = i + 1 + endwhile + + " Store balanced text in put register and call the appropriate put command + call setreg( '"', putreg ) + if v:count > 1 + silent exe "normal! " . v:count . a:cmd + else + silent exe "normal! " . a:cmd + endif + let @@ = reg_save +endfunction + +" Toggle paredit mode +function! PareditToggle() + let g:paredit_mode = 1 - g:paredit_mode + echo g:paredit_mode ? 'Paredit mode on' : 'Paredit mode off' + call PareditInitBuffer() +endfunction + +" Does the current syntax item match the given regular expression? +function! s:SynIDMatch( regexp, pos, match_eol ) + let line = line( a:pos ) + let col = col ( a:pos ) + if a:match_eol && col > len( getline( line ) ) + let col = col - 1 + endif + return synIDattr( synID( line, col, 0), 'name' ) =~ a:regexp +endfunction + +" Is the current cursor position inside a comment? +function! s:InsideComment( ... ) + return s:SynIDMatch( '[Cc]omment', a:0 ? a:1 : '.', 1 ) +endfunction + +" Is the current cursor position inside a string? +function! s:InsideString( ... ) + return s:SynIDMatch( '[Ss]tring', a:0 ? a:1 : '.', 0 ) +endfunction + +" Autoindent current top level form +function! PareditIndentTopLevelForm( level ) + if a:level < g:paredit_autoindent + return + endif + let l = line( '.' ) + let c = col( '.' ) + normal! ms + let matchb = max( [l-g:paredit_matchlines, 1] ) + let [l0, c0] = searchpairpos( '(', '', ')', 'brmW', s:skip_sc, matchb ) + "let save_exp = &expandtab + "set expandtab + normal! v%=`s + "let &expandtab = save_exp +endfunction + +" Is this a Slimv REPL buffer? +function! s:IsReplBuffer() + if exists( 'g:slimv_repl_dir' ) && exists( 'g:slimv_repl_file' ) + let repl_name = g:slimv_repl_dir . g:slimv_repl_file + return bufnr( repl_name ) == bufnr( '%' ) + else + return bufname( '%' ) =~ '.*\.repl\..*' + endif +endfunction + +" Get Slimv REPL buffer last command prompt position +" Return [0, 0] if this is not the REPL buffer +function! s:GetReplPromptPos() + if !s:IsReplBuffer() + return [0, 0] + endif + return [ line( "'s" ), col( "'s" ) ] +endfunction + +" Is the current top level form balanced, i.e all opening delimiters +" have a matching closing delimiter +function! s:IsBalanced() + let l = line( '.' ) + let c = col( '.' ) + let line = getline( '.' ) + let matchb = max( [l-g:paredit_matchlines, 1] ) + let matchf = min( [l+g:paredit_matchlines, line('$')] ) + let prompt = line( "'s" ) + if s:IsReplBuffer() && l >= prompt && matchb < prompt + " Do not go before the last command prompt in the REPL buffer + let matchb = prompt + endif + let p1 = searchpair( '(', '', ')', 'brnmW', s:skip_sc, matchb ) + let p2 = searchpair( '(', '', ')', 'rnmW', s:skip_sc, matchf ) + if !(p1 == p2) && !(p1 == p2 - 1 && line[c-1] == '(') && !(p1 == p2 + 1 && line[c-1] == ')') + " Number of opening and closing parens differ + return 0 + endif + let b1 = searchpair( '\[', '', '\]', 'brnmW', s:skip_sc, matchb ) + if b1 == 0 + " Outside of all bracket-pairs + return 1 + endif + let b2 = searchpair( '\[', '', '\]', 'rnmW', s:skip_sc, matchf ) + if !(b1 == b2) && !(b1 == b2 - 1 && line[c-1] == '[') && !(b1 == b2 + 1 && line[c-1] == ']') + " Number of opening and closing brackets differ + return 0 + endif + return 1 +endfunction + +" Filter out all non-matched characters from the region +function! s:GetMatchedChars( lines, start_in_string, start_in_comment ) + let inside_string = a:start_in_string + let inside_comment = a:start_in_comment + let matched = repeat( ' ', len( a:lines ) ) + let i = 0 + while i < len( a:lines ) + if inside_string + " We are inside a string, skip parens, wait for closing '"' + " but skip escaped \" characters + if a:lines[i] == '"' && a:lines[i-1] != '\' + let matched = strpart( matched, 0, i ) . a:lines[i] . strpart( matched, i+1 ) + let inside_string = 0 + endif + elseif inside_comment + " We are inside a comment, skip parens, wait for end of line + if a:lines[i] == "\n" + let inside_comment = 0 + endif + else + " We are outside of strings and comments, now we shall count parens + if a:lines[i] == '"' + let matched = strpart( matched, 0, i ) . a:lines[i] . strpart( matched, i+1 ) + let inside_string = 1 + endif + if a:lines[i] == ';' + let inside_comment = 1 + endif + if a:lines[i] == '(' || a:lines[i] == '[' || a:lines[i] == ')' || a:lines[i] == ']' + let matched = strpart( matched, 0, i ) . a:lines[i] . strpart( matched, i+1 ) + endif + endif + let i = i + 1 + endwhile + return matched +endfunction + +" Find unpaired matched characters by eliminating paired ones +function! s:Unbalanced( matched ) + let matched = a:matched + let tmp = matched + while 1 + let matched = tmp + let tmp = substitute( tmp, '(\(\s*\))', ' \1 ', 'g') + let tmp = substitute( tmp, '\[\(\s*\)\]', ' \1 ', 'g') + let tmp = substitute( tmp, '"\(\s*\)"', ' \1 ', 'g') + if tmp == matched + " All paired chars eliminated + let tmp = substitute( tmp, ')\(\s*\)(', ' \1 ', 'g') + let tmp = substitute( tmp, '\]\(\s*\)\[', ' \1 ', 'g') + if tmp == matched + " Also no more inverse pairs can be eliminated + break + endif + endif + endwhile + return matched +endfunction + +" Find opening matched character +function! PareditFindOpening( open, close, select ) + let open = escape( a:open , '[]' ) + let close = escape( a:close, '[]' ) + call searchpair( open, '', close, 'bW', s:skip_sc ) + if a:select + call searchpair( open, '', close, 'W', s:skip_sc ) + let save_ve = &ve + set ve=all + normal! lvh + let &ve = save_ve + call searchpair( open, '', close, 'bW', s:skip_sc ) + endif +endfunction + +" Find closing matched character +function! PareditFindClosing( open, close, select ) + let open = escape( a:open , '[]' ) + let close = escape( a:close, '[]' ) + if a:select + let line = getline( '.' ) + if line[col('.')-1] != a:open + normal! h + endif + call searchpair( open, '', close, 'W', s:skip_sc ) + call searchpair( open, '', close, 'bW', s:skip_sc ) + normal! v + call searchpair( open, '', close, 'W', s:skip_sc ) + normal! l + else + call searchpair( open, '', close, 'W', s:skip_sc ) + endif +endfunction + +" Insert opening type of a paired character, like ( or [. +function! PareditInsertOpening( open, close ) + if !g:paredit_mode || s:InsideComment() || s:InsideString() || !s:IsBalanced() + return a:open + endif + let line = getline( '.' ) + let pos = col( '.' ) - 1 + if line[pos] !~ s:any_wsclose_char && pos < len( line ) + " Add a space after if needed + let retval = a:open . a:close . " \\" + else + let retval = a:open . a:close . "\" + endif + if pos > 0 && line[pos-1] !~ s:any_wsopen_char && line[pos-1] !~ s:any_macro_prefix + " Add a space before if needed + let retval = " " . retval + endif + return retval +endfunction + +" Insert closing type of a paired character, like ) or ]. +function! PareditInsertClosing( open, close ) + if !g:paredit_mode || s:InsideComment() || s:InsideString() || !s:IsBalanced() + return a:close + endif + let line = getline( '.' ) + let pos = col( '.' ) - 1 + if line[pos] == a:close + return "\" + else + let open = escape( a:open , '[]' ) + let close = escape( a:close, '[]' ) + return "\:call searchpair('" . open . "','','" . close . "','W','" . s:skip_sc . "')\\" + "TODO: indent after going to closing character + endif +endfunction + +" Insert an (opening or closing) double quote +function! PareditInsertQuotes() + if !g:paredit_mode || s:InsideComment() + return '"' + endif + if s:InsideString() + let line = getline( '.' ) + let pos = col( '.' ) - 1 + "TODO: skip comments in search(...) + if pos > 0 && line[pos-1] == '\' && (pos < 2 || line[pos-2] != '\') + " About to enter a \" inside a string + return '"' + elseif line[pos] == '"' + " Standing on a ", just move to the right + return "\" + elseif search('[^\\]"\|^"', 'nW') == 0 + " We don't have any closing ", insert one + return '"' + else + " Move to the closing " + return "\:call search('" . '[^\\]"\|^"' . "','eW')\\" + endif + else + " Outside of string: insert a pair of "" + return '""' . "\" + endif +endfunction + +" Handle keypress +function! PareditBackspace( repl_mode ) + if a:repl_mode && line( "." ) == line( "'s" ) && col( "." ) <= col( "'s" ) + " No BS allowed before the previous EOF mark in the REPL + " i.e. don't delete Lisp prompt + return "" + endif + + if !g:paredit_mode || s:InsideComment() + return "\" + endif + + let line = getline( '.' ) + let pos = col( '.' ) - 1 + + if pos == 0 + " We are at the beginning of the line + return "\" + elseif line[pos-1] !~ s:any_matched_char + " Deleting a non-special character + return "\" + elseif line[pos-1] != '"' && !s:IsBalanced() + " Current top-form is unbalanced, can't retain paredit mode + return "\" + endif + + if line[pos-1:pos] =~ s:any_matched_pair + " Deleting an empty character-pair + return "\\\" + else + " Character-pair is not empty, don't delete just move inside + return "\" + endif +endfunction + +" Handle keypress +function! PareditDel() + if !g:paredit_mode || s:InsideComment() + return "\" + endif + + let line = getline( '.' ) + let pos = col( '.' ) - 1 + + if pos == len(line) + " We are at the end of the line + return "\" + elseif line[pos] !~ s:any_matched_char + " Erasing a non-special character + return "\" + elseif line[pos] != '"' && !s:IsBalanced() + " Current top-form is unbalanced, can't retain paredit mode + return "\" + elseif pos == 0 + return "\" + endif + + if line[pos-1:pos] =~ s:any_matched_pair + " Erasing an empty character-pair + return "\\\" + else + " Character-pair is not empty, don't erase just move inside + return "\" + endif +endfunction + +" Initialize yank position list +function! s:InitYankPos() + let @" = '' + let s:yank_pos = [] +endfunction + +" Add position to the yank list +function! s:AddYankPos( pos ) + let s:yank_pos = [a:pos] + s:yank_pos +endfunction + +" Remove the head of yank position list and return it +function! s:RemoveYankPos() + if len(s:yank_pos) > 0 + let pos = s:yank_pos[0] + let s:yank_pos = s:yank_pos[1:] + return pos + else + return 0 + endif +endfunction + +" Forward erasing a character in normal mode, do not check if current form balanced +function! s:EraseFwd( count, startcol ) + let line = getline( '.' ) + let pos = col( '.' ) - 1 + let reg = @" + let c = a:count + while c > 0 + if s:InsideString() && line[pos : pos+1] == '\"' + " Erasing a \" inside string + let reg = reg . line[pos : pos+1] + let line = strpart( line, 0, pos ) . strpart( line, pos+2 ) + elseif s:InsideComment() && line[pos] == ';' && a:startcol >= 0 + " Erasing the whole comment, only when erasing a block of characters + let reg = reg . strpart( line, pos ) + let line = strpart( line, 0, pos ) + elseif s:InsideComment() || ( s:InsideString() && line[pos] != '"' ) + " Erasing any character inside string or comment + let reg = reg . line[pos] + let line = strpart( line, 0, pos ) . strpart( line, pos+1 ) + elseif pos > 0 && line[pos-1:pos] =~ s:any_matched_pair + if pos > a:startcol + " Erasing an empty character-pair + let p2 = s:RemoveYankPos() + let reg = strpart( reg, 0, p2 ) . line[pos-1] . strpart( reg, p2 ) + let reg = reg . line[pos] + let line = strpart( line, 0, pos-1 ) . strpart( line, pos+1 ) + let pos = pos - 1 + normal! h + else + " Can't erase character-pair: it would move the cursor before startcol + let pos = pos + 1 + normal! l + endif + elseif line[pos] =~ s:any_matched_char + " Character-pair is not empty, don't erase just move inside + call s:AddYankPos( len(reg) ) + let pos = pos + 1 + normal! l + elseif pos < len(line) && pos >= a:startcol + " Erasing a non-special character + let reg = reg . line[pos] + let line = strpart( line, 0, pos ) . strpart( line, pos+1 ) + endif + let c = c - 1 + endwhile + call setline( '.', line ) + let @" = reg +endfunction + +" Backward erasing a character in normal mode, do not check if current form balanced +function! s:EraseBck( count ) + let line = getline( '.' ) + let pos = col( '.' ) - 1 + let reg = @" + let c = a:count + while c > 0 && pos > 0 + if s:InsideString() && pos > 1 && line[pos-2:pos-1] == '\"' + let reg = reg . line[pos-2 : pos-1] + let line = strpart( line, 0, pos-2 ) . strpart( line, pos ) + normal! h + let pos = pos - 1 + elseif s:InsideComment() || ( s:InsideString() && line[pos-1] != '"' ) + let reg = reg . line[pos-1] + let line = strpart( line, 0, pos-1 ) . strpart( line, pos ) + elseif line[pos-1:pos] =~ s:any_matched_pair + " Erasing an empty character-pair + let p2 = s:RemoveYankPos() + let reg = strpart( reg, 0, p2 ) . line[pos-1] . strpart( reg, p2 ) + let reg = reg . line[pos] + let line = strpart( line, 0, pos-1 ) . strpart( line, pos+1 ) + elseif line[pos-1] =~ s:any_matched_char + " Character-pair is not empty, don't erase + call s:AddYankPos( len(reg) ) + else + " Erasing a non-special character + let reg = reg . line[pos-1] + let line = strpart( line, 0, pos-1 ) . strpart( line, pos ) + endif + normal! h + let pos = pos - 1 + let c = c - 1 + endwhile + call setline( '.', line ) + let @" = reg +endfunction + +" Forward erasing a character in normal mode +function! PareditEraseFwd() + if !g:paredit_mode || !s:IsBalanced() + if v:count > 0 + silent execute 'normal! ' . v:count . 'x' + else + normal! x + endif + return + endif + + call s:InitYankPos() + call s:EraseFwd( v:count1, -1 ) +endfunction + +" Backward erasing a character in normal mode +function! PareditEraseBck() + if !g:paredit_mode || !s:IsBalanced() + if v:count > 0 + silent execute 'normal! ' . v:count . 'X' + else + normal! X + endif + return + endif + + call s:InitYankPos() + call s:EraseBck( v:count1 ) +endfunction + +" Find beginning of previous element (atom or sub-expression) in a form +" skip_whitespc: skip whitespaces before the previous element +function! s:PrevElement( skip_whitespc ) + let [l0, c0] = [line( '.' ), col( '.' )] + let symbol_pos = [0, 0] + let symbol_end = [0, 0] + + " Move to the beginning of the prefix if any + let line = getline( '.' ) + let c = col('.') - 1 + if c > 0 && line[c-1] =~ s:any_macro_prefix + normal! h + endif + + let moved = 0 + while 1 + " Go to previous character + if !moved + let [l1, c1] = [line( '.' ), col( '.' )] + normal! h + endif + let moved = 0 + let [l, c] = [line( '.' ), col( '.' )] + + if [l, c] == [l1, c1] + " Beginning of line reached + if symbol_pos != [0, 0] + let symbol_end = [l, c] + if !a:skip_whitespc && !s:InsideString() + " Newline before previous symbol + call setpos( '.', [0, l0, c0, 0] ) + return [l, c] + endif + endif + normal! k$ + let [l, c] = [line( '.' ), col( '.' )] + if [l, c] == [l1, c1] + " Beginning of file reached: stop + call setpos( '.', [0, l0, c0, 0] ) + return [0, 0] + endif + let moved = 1 + elseif s:InsideComment() + " Skip comments + else + let line = getline( '.' ) + if s:InsideString() + let symbol_pos = [l, c] + elseif symbol_pos == [0, 0] + if line[c-1] =~ s:any_closing_char + " Skip to the beginning of this sub-expression + let symbol_pos = [l, c] + normal! % + let line2 = getline( '.' ) + let c2 = col('.') - 1 + if c2 > 0 && line2[c2-1] =~ s:any_macro_prefix + normal! h + endif + elseif line[c-1] =~ s:any_opening_char + " Opening delimiter found: stop + call setpos( '.', [0, l0, c0, 0] ) + return [0, 0] + elseif line[c-1] =~ '\S' + " Previous symbol starting + let symbol_pos = [l, c] + endif + else + if line[c-1] =~ s:any_opening_char || (a:skip_whitespc && line[c-1] =~ '\S' && symbol_end != [0, 0]) + " Previous symbol beginning reached, opening delimiter or second previous symbol starting + call setpos( '.', [0, l0, c0, 0] ) + return [l, c+1] + elseif line[c-1] =~ '\s' || symbol_pos[0] != l + " Whitespace before previous symbol + let symbol_end = [l, c] + if !a:skip_whitespc + call setpos( '.', [0, l0, c0, 0] ) + return [l, c+1] + endif + endif + endif + endif + endwhile +endfunction + +" Find end of next element (atom or sub-expression) in a form +" skip_whitespc: skip whitespaces after the next element +function! s:NextElement( skip_whitespc ) + let [l0, c0] = [line( '.' ), col( '.' )] + let symbol_pos = [0, 0] + let symbol_end = [0, 0] + + while 1 + " Go to next character + let [l1, c1] = [line( '.' ), col( '.' )] + normal! l + let [l, c] = [line( '.' ), col( '.' )] + + " Skip comments + while [l, c] == [l1, c1] || s:InsideComment() + if symbol_pos != [0, 0] + let symbol_end = [l, c] + if !a:skip_whitespc && !s:InsideString() + " Next symbol ended with comment + call setpos( '.', [0, l0, c0, 0] ) + return [l, c + ([l, c] == [l1, c1])] + endif + endif + normal! 0j0 + let [l, c] = [line( '.' ), col( '.' )] + if [l, c] == [l1, c1] + " End of file reached: stop + call setpos( '.', [0, l0, c0, 0] ) + return [0, 0] + endif + endwhile + + let line = getline( '.' ) + if s:InsideString() + let symbol_pos = [l, c] + elseif symbol_pos == [0, 0] + if line[c-1] =~ s:any_macro_prefix && line[c] =~ s:any_opening_char + " Skip to the end of this prefixed sub-expression + let symbol_pos = [l, c] + normal! l% + elseif line[c-1] =~ s:any_opening_char + " Skip to the end of this sub-expression + let symbol_pos = [l, c] + normal! % + elseif line[c-1] =~ s:any_closing_char + " Closing delimiter found: stop + call setpos( '.', [0, l0, c0, 0] ) + return [0, 0] + elseif line[c-1] =~ '\S' + " Next symbol starting + let symbol_pos = [l, c] + endif + else + if line[c-1] =~ s:any_closing_char || (a:skip_whitespc && line[c-1] =~ '\S' && symbol_end != [0, 0]) + " Next symbol ended, closing delimiter or second next symbol starting + call setpos( '.', [0, l0, c0, 0] ) + return [l, c] + elseif line[c-1] =~ '\s' || symbol_pos[0] != l + " Next symbol ending with whitespace + let symbol_end = [l, c] + if !a:skip_whitespc + call setpos( '.', [0, l0, c0, 0] ) + return [l, c] + endif + endif + endif + endwhile +endfunction + +" Move character from [l0, c0] to [l1, c1] +" Set position to [l1, c1] +function! s:MoveChar( l0, c0, l1, c1 ) + let line = getline( a:l0 ) + let c = line[a:c0-1] + if a:l1 == a:l0 + " Move character inside line + if a:c1 > a:c0 + let line = strpart( line, 0, a:c0-1 ) . strpart( line, a:c0, a:c1-a:c0-1 ) . c . strpart( line, a:c1-1 ) + call setline( a:l0, line ) + call setpos( '.', [0, a:l1, a:c1-1, 0] ) + else + let line = strpart( line, 0, a:c1-1 ) . c . strpart( line, a:c1-1, a:c0-a:c1 ) . strpart( line, a:c0 ) + call setline( a:l0, line ) + call setpos( '.', [0, a:l1, a:c1, 0] ) + endif + else + " Move character to another line + let line = strpart( line, 0, a:c0-1 ) . strpart( line, a:c0 ) + call setline( a:l0, line ) + let line1 = getline( a:l1 ) + if a:c1 > 1 + let line1 = strpart( line1, 0, a:c1-1 ) . c . strpart( line1, a:c1-1 ) + call setline( a:l1, line1 ) + call setpos( '.', [0, a:l1, a:c1, 0] ) + else + let line1 = c . line1 + call setline( a:l1, line1 ) + call setpos( '.', [0, a:l1, 1, 0] ) + endif + endif +endfunction + +" Find a paren nearby to move +function! s:FindParenNearby() + let line = getline( '.' ) + let c0 = col( '.' ) + if line[c0-1] !~ s:any_openclose_char + " OK, we are not standing on a paren to move, but check if there is one nearby + if (c0 < 2 || line[c0-2] !~ s:any_openclose_char) && line[c0] =~ s:any_openclose_char + normal! l + elseif c0 > 1 && line[c0-2] =~ s:any_openclose_char && line[c0] !~ s:any_openclose_char + normal! h + endif + endif + + " Skip macro prefix character + let c0 = col( '.' ) + if line[c0-1] =~ s:any_macro_prefix && line[c0] =~ s:any_opening_char + normal! l + endif +endfunction + +" Move delimiter one atom or s-expression to the left +function! PareditMoveLeft() + call s:FindParenNearby() + + let line = getline( '.' ) + let l0 = line( '.' ) + let c0 = col( '.' ) + + if line[c0-1] =~ s:any_opening_char + let closing = 0 + elseif line[c0-1] =~ s:any_closing_char + let closing = 1 + else + " Can move only delimiters + return + endif + + let [lp, cp] = s:GetReplPromptPos() + let [l1, c1] = s:PrevElement( closing ) + if [l1, c1] == [0, 0] + " No previous element found + return + elseif [lp, cp] != [0, 0] && l0 >= lp && (l1 < lp || (l1 == lp && c1 < cp)) + " Do not go before the last command prompt in the REPL buffer + return + endif + if !closing && c0 > 0 && line[c0-2] =~ s:any_macro_prefix + call s:MoveChar( l0, c0-1, l1, c1 ) + call s:MoveChar( l0, c0 - (l0 != l1), l1, c1+1 ) + let len = 2 + else + call s:MoveChar( l0, c0, l1, c1 ) + let len = 1 + endif + let line = getline( '.' ) + let c = col( '.' ) - 1 + if closing && line[c+1] !~ s:any_wsclose_char + " Insert a space after if needed + execute "normal! a " + normal! h + endif + if !closing && c > 0 && line[c-len] !~ s:any_wsopen_char + " Insert a space before if needed + if len > 1 + execute "normal! hi " + normal! ll + else + execute "normal! i " + normal! l + endif + endif + return +endfunction + +" Move delimiter one atom or s-expression to the right +function! PareditMoveRight() + call s:FindParenNearby() + + "TODO: move ')' in '() xxx' leaves space + let line = getline( '.' ) + let l0 = line( '.' ) + let c0 = col( '.' ) + + if line[c0-1] =~ s:any_opening_char + let opening = 1 + elseif line[c0-1] =~ s:any_closing_char + let opening = 0 + else + " Can move only delimiters + return + endif + + let [lp, cp] = s:GetReplPromptPos() + let [l1, c1] = s:NextElement( opening ) + if [l1, c1] == [0, 0] + " No next element found + return + elseif [lp, cp] != [0, 0] && l0 < lp && l1 >= lp + " Do not go after the last command prompt in the REPL buffer + return + endif + if opening && c0 > 1 && line[c0-2] =~ s:any_macro_prefix + call s:MoveChar( l0, c0-1, l1, c1 ) + call s:MoveChar( l0, c0-1, l1, c1 + (l0 != l1) ) + let len = 2 + else + call s:MoveChar( l0, c0, l1, c1 ) + let len = 1 + endif + let line = getline( '.' ) + let c = col( '.' ) - 1 + if opening && c > 0 && line[c-len] !~ s:any_wsopen_char + " Insert a space before if needed + if len > 1 + execute "normal! hi " + normal! ll + else + execute "normal! i " + normal! l + endif + endif + if !opening && line[c+1] !~ s:any_wsclose_char + " Insert a space after if needed + execute "normal! a " + normal! h + endif +endfunction + +" Find closing of the innermost structure: (...) or [...] +" Return a list where first element is the closing character, +" second and third is its position (line, column) +function! s:FindClosing() + let l = line( '.' ) + let c = col( '.' ) + call PareditFindClosing( '(', ')', 0 ) + let lp = line( '.' ) + let cp = col( '.' ) + call setpos( '.', [0, l, c, 0] ) + call PareditFindClosing( '[', ']', 0 ) + let lb = line( '.' ) + let cb = col( '.' ) + call setpos( '.', [0, l, c, 0] ) + if [lp, cp] == [l, c] && [lb, cb] == [l, c] + " Not found any kind of paren + return ['', 0, 0] + elseif [lb, cb] == [l, c] || lp < lb || (lp == lb && cp < cb) + " The innermost structure is a (...) + return [')', lp, cp] + else + " The innermost structure is a [...] + return [']', lb, cb] + endif +endfunction + +" Split list or string at the cursor position +" Current symbol will be split into the second part +function! PareditSplit() + if !g:paredit_mode || s:InsideComment() + return + endif + + if s:InsideString() + normal! i" " + else + " Go back to the beginning of the current symbol + let c = col('.') - 1 + if getline('.')[c] =~ '\S' + if c == 0 || (c > 0 && getline('.')[c-1] =~ s:any_wsopen_char) + " OK, we are standing on the first character of the symbol + else + normal! b + endif + endif + + " First find which kind of paren is the innermost + let [p, l, c] = s:FindClosing() + if p !~ s:any_closing_char + " Not found any kind of parens + return + endif + + " Delete all whitespaces around cursor position + while getline('.')[col('.')-1] =~ '\s' + normal! x + endwhile + while col('.') > 1 && getline('.')[col('.')-2] =~ '\s' + normal! X + endwhile + + if p == ')' + normal! i) ( + else + normal! i] [ + endif + endif +endfunction + +" Join two neighboring lists or strings +function! PareditJoin() + if !g:paredit_mode || s:InsideComment() || s:InsideString() + return + endif + + "TODO: skip parens in comments + let [l0, c0] = searchpos(s:any_matched_char, 'nbW') + let [l1, c1] = searchpos(s:any_matched_char, 'ncW') + if [l0, c0] == [0, 0] || [l1, c1] == [0, 0] + return + endif + let line0 = getline( l0 ) + let line1 = getline( l1 ) + if (line0[c0-1] == ')' && line1[c1-1] == '(') || (line0[c0-1] == ']' && line1[c1-1] == '[') || (line0[c0-1] == '"' && line1[c1-1] == '"') + if l0 == l1 + " First list ends on the same line where the second list begins + let line0 = strpart( line0, 0, c0-1 ) . ' ' . strpart( line0, c1 ) + call setline( l0, line0 ) + else + " First list ends on a line different from where the second list begins + let line0 = strpart( line0, 0, c0-1 ) + let line1 = strpart( line1, 0, c1-1 ) . strpart( line1, c1 ) + call setline( l0, line0 ) + call setline( l1, line1 ) + endif + endif +endfunction + +" Wrap current visual block in parens of the given kind +function! s:WrapSelection( open, close ) + let l0 = line( "'<" ) + let l1 = line( "'>" ) + let c0 = col( "'<" ) + let c1 = col( "'>" ) + if &selection == 'inclusive' + let c1 = c1 + 1 + endif + if [l0, c0] == [0, 0] || [l1, c1] == [0, 0] + " No selection + return + endif + if l0 > l1 || (l0 == l1 && c0 > c1) + " Swap both ends of selection to make [l0, c0] < [l1, c1] + let [ltmp, ctmp] = [l0, c0] + let [l0, c0] = [l1, c1] + let [l1, c1] = [ltmp, ctmp] + endif + let save_ve = &ve + set ve=all + call setpos( '.', [0, l0, c0, 0] ) + execute "normal! i" . a:open + call setpos( '.', [0, l1, c1 + (l0 == l1), 0] ) + execute "normal! i" . a:close + let &ve = save_ve +endfunction + +" Wrap current visual block in parens of the given kind +" Keep visual mode +function! PareditWrapSelection( open, close ) + call s:WrapSelection( a:open, a:close ) +endfunction + +" Wrap current symbol in parens of the given kind +" If standing on a paren then wrap the whole s-expression +" Stand on the opening paren (if not wrapping in "") +function! PareditWrap( open, close ) + if a:open != '"' && getline('.')[col('.') - 1] =~ s:any_openclose_char + execute "normal! " . "v%\" + else + execute "normal! " . "viw\" + endif + call s:WrapSelection( a:open, a:close ) + if a:open != '"' + normal! % + endif +endfunction + +" Splice current list into the containing list +function! PareditSplice() + if !g:paredit_mode + return + endif + + " First find which kind of paren is the innermost + let [p, l, c] = s:FindClosing() + if p !~ s:any_closing_char + " Not found any kind of parens + return + endif + + call setpos( '.', [0, l, c, 0] ) + normal! % + let l = line( '.' ) + let c = col( '.' ) + normal! %x + call setpos( '.', [0, l, c, 0] ) + normal! x + if c > 1 && getline('.')[c-2] =~ s:any_macro_prefix + normal! X + endif +endfunction + + +" ===================================================================== +" Autocommands +" ===================================================================== + +au BufNewFile,BufRead *.lisp call PareditInitBuffer() +au BufNewFile,BufRead *.clj call PareditInitBuffer() + diff -r e0f13b88e80e -r c4d3b4507707 vim/bundle/slimv/syntax/clojure/slimv-syntax-clojure.vim --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vim/bundle/slimv/syntax/clojure/slimv-syntax-clojure.vim Fri Nov 12 18:30:35 2010 -0500 @@ -0,0 +1,34 @@ +" slimv-syntax-clojure.vim: +" Clojure syntax plugin for Slimv +" Version: 0.5.4 +" Last Change: 15 Nov 2009 +" Maintainer: Tamas Kovacs +" License: This file is placed in the public domain. +" No warranty, express or implied. +" *** *** Use At-Your-Own-Risk! *** *** +" +" ===================================================================== +" +" Load Once: +if exists("b:current_syntax") + finish +endif + +runtime syntax/**/lisp.vim + +" Add [] to the lisp_rainbow handling +syn match lispSymbol contained ![^()\[\]'`,"; \t]\+! +syn match lispBarSymbol contained !|..\{-}|! +if exists("g:lisp_rainbow") && g:lisp_rainbow != 0 + syn region lispParen0 matchgroup=hlLevel0 start="`\=\[" end="\]" skip="|.\{-}|" contains=@lispListCluster,lispParen1 + syn region lispParen1 contained matchgroup=hlLevel1 start="`\=\[" end="\]" skip="|.\{-}|" contains=@lispListCluster,lispParen2 + syn region lispParen2 contained matchgroup=hlLevel2 start="`\=\[" end="\]" skip="|.\{-}|" contains=@lispListCluster,lispParen3 + syn region lispParen3 contained matchgroup=hlLevel3 start="`\=\[" end="\]" skip="|.\{-}|" contains=@lispListCluster,lispParen4 + syn region lispParen4 contained matchgroup=hlLevel4 start="`\=\[" end="\]" skip="|.\{-}|" contains=@lispListCluster,lispParen5 + syn region lispParen5 contained matchgroup=hlLevel5 start="`\=\[" end="\]" skip="|.\{-}|" contains=@lispListCluster,lispParen6 + syn region lispParen6 contained matchgroup=hlLevel6 start="`\=\[" end="\]" skip="|.\{-}|" contains=@lispListCluster,lispParen7 + syn region lispParen7 contained matchgroup=hlLevel7 start="`\=\[" end="\]" skip="|.\{-}|" contains=@lispListCluster,lispParen8 + syn region lispParen8 contained matchgroup=hlLevel8 start="`\=\[" end="\]" skip="|.\{-}|" contains=@lispListCluster,lispParen9 + syn region lispParen9 contained matchgroup=hlLevel9 start="`\=\[" end="\]" skip="|.\{-}|" contains=@lispListCluster,lispParen0 +endif +