Mercurial > vim
view runtime/syntax/mp.vim @ 11997:66b677c77467 v8.0.0879
patch 8.0.0879: crash when shifting with huge number
commit https://github.com/vim/vim/commit/bae5a17a738d1a3b5c51d9aa5d99e228d3911955
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Aug 6 15:42:06 2017 +0200
patch 8.0.0879: crash when shifting with huge number
Problem: Crash when shifting with huge number.
Solution: Check for overflow. (Dominique Pelle, closes https://github.com/vim/vim/issues/1945)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 06 Aug 2017 15:45:04 +0200 |
parents | 07d2b5a3b7cc |
children | 2acb87ee55fc |
line wrap: on
line source
" Vim syntax file " Language: MetaPost " Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com> " Former Maintainers: Andreas Scherer <andreas.scherer@pobox.com> " Last Change: 2016 Oct 14 if exists("b:current_syntax") finish endif let s:cpo_sav = &cpo set cpo&vim if exists("g:plain_mf_macros") let s:plain_mf_macros = g:plain_mf_macros endif if exists("g:plain_mf_modes") let s:plain_mf_modes = g:plain_mf_modes endif if exists("g:other_mf_macros") let s:other_mf_macros = g:other_mf_macros endif let g:plain_mf_macros = 0 " plain.mf has no special meaning for MetaPost let g:plain_mf_modes = 0 " No METAFONT modes let g:other_mf_macros = 0 " cmbase.mf, logo.mf, ... neither " Read the METAFONT syntax to start with runtime! syntax/mf.vim unlet b:current_syntax " Necessary for syn include below " Restore the value of existing global variables if exists("s:plain_mf_macros") let g:plain_mf_macros = s:plain_mf_macros else unlet g:plain_mf_macros endif if exists("s:plain_mf_modes") let g:plain_mf_modes = s:plain_mf_modes else unlet g:plain_mf_modes endif if exists("s:other_mf_macros") let g:other_mf_macros = s:other_mf_macros else unlet g:other_mf_macros endif " Use TeX highlighting inside verbatimtex/btex... etex syn include @MPTeX syntax/tex.vim unlet b:current_syntax " These are defined as keywords rather than using matchgroup " in order to make them available to syntaxcomplete. syn keyword mpTeXdelim btex etex verbatimtex contained syn region mpTeXinsert \ start=/\<verbatimtex\>\|\<btex\>/rs=e+1 \ end=/\<etex\>/re=s-1 keepend \ contains=@MPTeX,mpTeXdelim " iskeyword must be set after the syn include above, because tex.vim sets `syn " iskeyword`. Note that keywords do not contain numbers (numbers are " subscripts) syntax iskeyword @,_ " MetaPost primitives not found in METAFONT syn keyword mpBoolExp bounded clipped filled stroked textual arclength syn keyword mpNumExp arctime blackpart bluepart colormodel cyanpart syn keyword mpNumExp fontsize greenpart greypart magentapart redpart syn keyword mpPairExp yellowpart llcorner lrcorner ulcorner urcorner " envelope is seemingly undocumented, but it exists since mpost 1.003. " The syntax is: envelope <polygonal pen> of <path primary>. For example, " path p; " p := envelope pensquare of (up--left); " (Thanks to Daniel H. Luecking for the example!) syn keyword mpPathExp envelope pathpart syn keyword mpPenExp penpart syn keyword mpPicExp dashpart glyph infont syn keyword mpStringExp fontpart readfrom textpart syn keyword mpType cmykcolor color rgbcolor " Other MetaPost primitives listed in the manual syn keyword mpPrimitive mpxbreak within " Internal quantities not found in METAFONT " (Table 6 in MetaPost: A User's Manual) syn keyword mpInternal defaultcolormodel hour minute linecap linejoin syn keyword mpInternal miterlimit mpprocset mpversion numberprecision syn keyword mpInternal numbersystem outputfilename outputformat syn keyword mpInternal outputformatoptions outputtemplate prologues syn keyword mpInternal restoreclipcolor tracinglostchars troffmode syn keyword mpInternal truecorners " List of commands not found in METAFONT (from MetaPost: A User's Manual) syn keyword mpCommand clip closefrom dashed filenametemplate fontmapfile syn keyword mpCommand fontmapline setbounds withcmykcolor withcolor syn keyword mpCommand withgreyscale withoutcolor withpostscript syn keyword mpCommand withprescript withrgbcolor write " METAFONT internal variables not found in MetaPost syn keyword notDefined autorounding chardx chardy fillin granularity syn keyword notDefined proofing smoothing tracingedges tracingpens syn keyword notDefined turningcheck xoffset yoffset " Suffix defined only in METAFONT: syn keyword notDefined nodot " Other not implemented primitives (see MetaPost: A User's Manual, §C.1) syn keyword notDefined cull display openwindow numspecial totalweight syn keyword notDefined withweight " Keywords defined by plain.mp if get(g:, "plain_mp_macros", 1) || get(g:, "mp_metafun_macros", 0) syn keyword mpDef beginfig clear_pen_memory clearit clearpen clearpen syn keyword mpDef clearxy colorpart cutdraw downto draw drawarrow syn keyword mpDef drawdblarrow drawdot drawoptions endfig erase syn keyword mpDef exitunless fill filldraw flex gobble hide interact syn keyword mpDef label loggingall makelabel numtok penstroke pickup syn keyword mpDef range reflectedabout rotatedaround shipit syn keyword mpDef stop superellipse takepower tracingall tracingnone syn keyword mpDef undraw undrawdot unfill unfilldraw upto syn match mpDef "???" syn keyword mpVardef arrowhead bbox bot buildcycle byte ceiling center syn keyword mpVardef counterclockwise decr dir direction directionpoint syn keyword mpVardef dotlabel dotlabels image incr interpath inverse syn keyword mpVardef labels lft magstep max min penlabels penpos round syn keyword mpVardef rt savepen solve tensepath thelabel top unitvector syn keyword mpVardef whatever z syn keyword mpPrimaryDef div dotprod gobbled mod syn keyword mpSecondaryDef intersectionpoint syn keyword mpTertiaryDef cutafter cutbefore softjoin thru syn keyword mpNewInternal ahangle ahlength bboxmargin beveled butt defaultpen syn keyword mpNewInternal defaultscale dotlabeldiam eps epsilon infinity syn keyword mpNewInternal join_radius labeloffset mitered pen_bot pen_lft syn keyword mpNewInternal pen_rt pen_top rounded squared tolerance " Predefined constants syn keyword mpConstant EOF background base_name base_version black syn keyword mpConstant blankpicture blue ditto down evenly fullcircle syn keyword mpConstant green halfcircle identity left origin penrazor syn keyword mpConstant penspeck pensquare quartercircle red right syn keyword mpConstant unitsquare up white withdots " Other predefined variables syn keyword mpVariable currentpen currentpen_path currentpicture cuttings syn keyword mpVariable defaultfont extra_beginfig extra_endfig syn match mpVariable /\<\%(laboff\|labxf\|labyf\)\>/ syn match mpVariable /\<\%(laboff\|labxf\|labyf\)\.\%(lft\|rt\|bot\|top\|ulft\|urt\|llft\|lrt\)\>/ " let statements: syn keyword mpnumExp abs syn keyword mpDef rotatedabout syn keyword mpCommand bye relax " on and off are not technically keywords, but it is nice to highlight them " inside dashpattern(). syn keyword mpOnOff off on contained syn keyword mpDash dashpattern contained syn region mpDashPattern \ start="dashpattern\s*" \ end=")"he=e-1 \ contains=mfNumeric,mfLength,mpOnOff,mpDash endif " Keywords defined by mfplain.mp if get(g:, "mfplain_mp_macros", 0) syn keyword mpDef beginchar capsule_def change_width syn keyword mpDef define_blacker_pixels define_corrected_pixels syn keyword mpDef define_good_x_pixels define_good_y_pixels syn keyword mpDef define_horizontal_corrected_pixels define_pixels syn keyword mpDef define_whole_blacker_pixels define_whole_pixels syn keyword mpDef define_whole_vertical_blacker_pixels syn keyword mpDef define_whole_vertical_pixels endchar syn keyword mpDef font_coding_scheme font_extra_space font_identifier syn keyword mpDef font_normal_shrink font_normal_space syn keyword mpDef font_normal_stretch font_quad font_size font_slant syn keyword mpDef font_x_height italcorr labelfont lowres_fix makebox syn keyword mpDef makegrid maketicks mode_def mode_setup proofrule syn keyword mpDef smode syn keyword mpVardef hround proofrulethickness vround syn keyword mpNewInternal blacker o_correction syn keyword mpVariable extra_beginchar extra_endchar extra_setup rulepen " plus some no-ops, also from mfplain.mp syn keyword mpDef cull cullit gfcorners imagerules nodisplays syn keyword mpDef notransforms openit proofoffset screenchars syn keyword mpDef screenrule screenstrokes showit syn keyword mpVardef grayfont slantfont titlefont syn keyword mpVariable currenttransform syn keyword mpConstant unitpixel " These are not listed in the MetaPost manual, and some are ignored by " MetaPost, but are nonetheless defined in mfplain.mp syn keyword mpDef killtext syn match mpVardef "\<good\.\%(x\|y\|lft\|rt\|top\|bot\)\>" syn keyword mpVariable aspect_ratio localfont mag mode mode_name syn keyword mpVariable proofcolor syn keyword mpConstant lowres proof smoke syn keyword mpNewInternal autorounding bp_per_pixel granularity syn keyword mpNewInternal number_of_modes proofing smoothing turningcheck endif " Keywords defined by all base macro packages: " - (r)boxes.mp " - format.mp " - graph.mp " - marith.mp " - sarith.mp " - string.mp " - TEX.mp if get(g:, "other_mp_macros", 1) " boxes and rboxes syn keyword mpDef boxjoin drawboxed drawboxes drawunboxed syn keyword mpNewInternal circmargin defaultdx defaultdy rbox_radius syn keyword mpVardef boxit bpath circleit fixpos fixsize generic_declare syn keyword mpVardef generic_redeclare generisize pic rboxit str_prefix " format syn keyword mpVardef Mformat format init_numbers roundd syn keyword mpVariable Fe_base Fe_plus syn keyword mpConstant Ten_to " graph syn keyword mpDef Gfor Gxyscale OUT auto begingraph endgraph gdata syn keyword mpDef gdraw gdrawarrow gdrawdblarrow gfill plot syn keyword mpVardef augment autogrid frame gdotlabel glabel grid itick syn keyword mpVardef otick syn keyword mpVardef Mreadpath setcoords setrange syn keyword mpNewInternal Gmarks Gminlog Gpaths linear log syn keyword mpVariable Autoform Gemarks Glmarks Gumarks syn keyword mpConstant Gtemplate syn match mpVariable /Gmargin\.\%(low\|high\)/ " marith syn keyword mpVardef Mabs Meform Mexp Mexp_str Mlog Mlog_Str Mlog_str syn keyword mpPrimaryDef Mdiv Mmul syn keyword mpSecondaryDef Madd Msub syn keyword mpTertiaryDef Mleq syn keyword mpNewInternal Mten Mzero " sarith syn keyword mpVardef Sabs Scvnum syn keyword mpPrimaryDef Sdiv Smul syn keyword mpSecondaryDef Sadd Ssub syn keyword mpTertiaryDef Sleq Sneq " string syn keyword mpVardef cspan isdigit loptok " TEX syn keyword mpVardef TEX TEXPOST TEXPRE endif " Up to date as of 23-Sep-2016. if get(b:, 'mp_metafun_macros', get(g:, 'mp_metafun_macros', 0)) " Highlight TeX keywords (for use in ConTeXt documents) syn match mpTeXKeyword '\\[a-zA-Z@]\+' " These keywords have been added manually. syn keyword mpPrimitive runscript " The following MetaFun keywords have been extracted automatically from " ConTeXt source code. They include all "public" macros (where a macro is " considered public if and only if it does not start with _, mfun_, mlib_, or " do_, and it does not end with _), all "public" unsaved variables, and all " `let` statements. " mp-abck.mpiv syn keyword mpDef abck_grid_line anchor_box box_found boxfilloptions syn keyword mpDef boxgridoptions boxlineoptions draw_multi_pars syn keyword mpDef draw_multi_side draw_multi_side_path freeze_box syn keyword mpDef initialize_box initialize_box_pos syn keyword mpDef multi_side_draw_options show_multi_kind syn keyword mpDef show_multi_pars syn keyword mpVardef abck_baseline_grid abck_draw_path abck_graphic_grid syn keyword mpVariable boxdashtype boxfilloffset boxfilltype syn keyword mpVariable boxgriddirection boxgriddistance boxgridshift syn keyword mpVariable boxgridtype boxgridwidth boxlineoffset syn keyword mpVariable boxlineradius boxlinetype boxlinewidth multikind syn keyword mpConstant context_abck " mp-apos.mpiv syn keyword mpDef anch_sidebars_draw boxfilloptions boxlineoptions syn keyword mpDef connect_positions syn keyword mpConstant context_apos " mp-asnc.mpiv syn keyword mpDef FlushSyncTasks ProcessSyncTask ResetSyncTasks syn keyword mpDef SetSyncColor SetSyncThreshold SyncTask syn keyword mpVardef PrepareSyncTasks SyncBox TheSyncColor syn keyword mpVardef TheSyncThreshold syn keyword mpVariable CurrentSyncClass NOfSyncPaths SyncColor syn keyword mpVariable SyncLeftOffset SyncPaths SyncTasks SyncThreshold syn keyword mpVariable SyncThresholdMethod SyncWidth syn keyword mpConstant context_asnc " mp-back.mpiv syn keyword mpDef some_double_back some_hash syn keyword mpVariable back_nillcolor syn keyword mpConstant context_back " mp-bare.mpiv syn keyword mpVardef colordecimals rawtextext syn keyword mpPrimaryDef infont syn keyword mpConstant context_bare " mp-base.mpiv " This is essentially plain.mp with only a few keywords added syn keyword mpNumExp graypart syn keyword mpType graycolor greycolor syn keyword mpConstant cyan magenta yellow " mp-butt.mpiv syn keyword mpDef predefinedbutton some_button syn keyword mpConstant context_butt " mp-char.mpiv syn keyword mpDef flow_begin_chart flow_begin_sub_chart syn keyword mpDef flow_chart_draw_comment flow_chart_draw_exit syn keyword mpDef flow_chart_draw_label flow_chart_draw_text syn keyword mpDef flow_clip_chart flow_collapse_points syn keyword mpDef flow_connect_bottom_bottom flow_connect_bottom_left syn keyword mpDef flow_connect_bottom_right flow_connect_bottom_top syn keyword mpDef flow_connect_left_bottom flow_connect_left_left syn keyword mpDef flow_connect_left_right flow_connect_left_top syn keyword mpDef flow_connect_right_bottom flow_connect_right_left syn keyword mpDef flow_connect_right_right flow_connect_right_top syn keyword mpDef flow_connect_top_bottom flow_connect_top_left syn keyword mpDef flow_connect_top_right flow_connect_top_top syn keyword mpDef flow_draw_connection flow_draw_connection_point syn keyword mpDef flow_draw_midpoint flow_draw_shape syn keyword mpDef flow_draw_test_area flow_draw_test_shape syn keyword mpDef flow_draw_test_shapes flow_end_chart syn keyword mpDef flow_end_sub_chart flow_flush_connections syn keyword mpDef flow_flush_picture flow_flush_pictures syn keyword mpDef flow_flush_shape flow_flush_shapes syn keyword mpDef flow_initialize_grid flow_new_chart flow_new_shape syn keyword mpDef flow_scaled_to_grid flow_show_connection syn keyword mpDef flow_show_connections flow_show_shapes syn keyword mpDef flow_xy_offset flow_y_pos syn keyword mpVardef flow_connection_path flow_down_on_grid syn keyword mpVardef flow_down_to_grid flow_i_point flow_left_on_grid syn keyword mpVardef flow_left_to_grid flow_offset syn keyword mpVardef flow_points_initialized flow_right_on_grid syn keyword mpVardef flow_right_to_grid flow_smooth_connection syn keyword mpVardef flow_trim_points flow_trimmed flow_up_on_grid syn keyword mpVardef flow_up_to_grid flow_valid_connection syn keyword mpVardef flow_x_on_grid flow_xy_bottom flow_xy_left syn keyword mpVardef flow_xy_on_grid flow_xy_right flow_xy_top syn keyword mpVardef flow_y_on_grid syn keyword mpVariable flow_arrowtip flow_chart_background_color syn keyword mpVariable flow_chart_offset flow_comment_offset syn keyword mpVariable flow_connection_arrow_size syn keyword mpVariable flow_connection_dash_size syn keyword mpVariable flow_connection_line_color syn keyword mpVariable flow_connection_line_width syn keyword mpVariable flow_connection_smooth_size flow_connections syn keyword mpVariable flow_cpath flow_dash_pattern flow_dashline syn keyword mpVariable flow_exit_offset flow_forcevalid flow_grid_height syn keyword mpVariable flow_grid_width flow_label_offset flow_max_x syn keyword mpVariable flow_max_y flow_peepshape flow_reverse_connection syn keyword mpVariable flow_reverse_y flow_shape_action flow_shape_archive syn keyword mpVariable flow_shape_decision flow_shape_down syn keyword mpVariable flow_shape_fill_color flow_shape_height syn keyword mpVariable flow_shape_left flow_shape_line_color syn keyword mpVariable flow_shape_line_width flow_shape_loop syn keyword mpVariable flow_shape_multidocument flow_shape_node syn keyword mpVariable flow_shape_procedure flow_shape_product syn keyword mpVariable flow_shape_right flow_shape_singledocument syn keyword mpVariable flow_shape_subprocedure flow_shape_up syn keyword mpVariable flow_shape_wait flow_shape_width syn keyword mpVariable flow_show_all_points flow_show_con_points syn keyword mpVariable flow_show_mid_points flow_showcrossing flow_smooth syn keyword mpVariable flow_touchshape flow_xypoint flow_zfactor syn keyword mpConstant context_flow " mp-chem.mpiv syn keyword mpDef chem_init_all chem_reset chem_start_structure syn keyword mpDef chem_transformed syn keyword mpVardef chem_ad chem_adj chem_align chem_arrow chem_au syn keyword mpVardef chem_b chem_bb chem_bd chem_bw chem_c chem_cc syn keyword mpVardef chem_ccd chem_cd chem_crz chem_cz chem_dash chem_db syn keyword mpVardef chem_diff chem_dir chem_do chem_dr chem_draw syn keyword mpVardef chem_drawarrow chem_eb chem_ed chem_ep chem_er syn keyword mpVardef chem_es chem_et chem_fill chem_hb chem_init_some syn keyword mpVardef chem_label chem_ldb chem_ldd chem_line chem_lr syn keyword mpVardef chem_lrb chem_lrbd chem_lrd chem_lrh chem_lrn syn keyword mpVardef chem_lrt chem_lrz chem_lsr chem_lsub chem_mark syn keyword mpVardef chem_marked chem_mid chem_mids chem_midz chem_mir syn keyword mpVardef chem_mov chem_move chem_number chem_oe chem_off syn keyword mpVardef chem_pb chem_pe chem_r chem_r_fragment chem_rb syn keyword mpVardef chem_rbd chem_rd chem_rdb chem_rdd chem_restore syn keyword mpVardef chem_rh chem_rm chem_rn chem_rot chem_rr chem_rrb syn keyword mpVardef chem_rrbd chem_rrd chem_rrh chem_rrn chem_rrt syn keyword mpVardef chem_rrz chem_rsr chem_rsub chem_rt chem_rz chem_s syn keyword mpVardef chem_save chem_sb chem_sd chem_set chem_sr chem_ss syn keyword mpVardef chem_start_component chem_stop_component syn keyword mpVardef chem_stop_structure chem_sub chem_symbol chem_tb syn keyword mpVardef chem_text chem_z chem_zln chem_zlt chem_zn chem_zrn syn keyword mpVardef chem_zrt chem_zt syn keyword mpVariable chem_mark_pair chem_stack_mirror chem_stack_origin syn keyword mpVariable chem_stack_p chem_stack_previous syn keyword mpVariable chem_stack_rotation chem_trace_boundingbox syn keyword mpVariable chem_trace_nesting chem_trace_text syn keyword mpConstant context_chem " mp-core.mpiv syn keyword mpDef FlushSyncTasks ProcessSyncTask syn keyword mpDef RegisterLocalTextArea RegisterPlainTextArea syn keyword mpDef RegisterRegionTextArea RegisterTextArea syn keyword mpDef ResetLocalTextArea ResetSyncTasks ResetTextAreas syn keyword mpDef SaveTextAreas SetSyncColor SetSyncThreshold syn keyword mpDef SyncTask anchor_box box_found boxfilloptions syn keyword mpDef boxgridoptions boxlineoptions collapse_multi_pars syn keyword mpDef draw_box draw_multi_pars draw_par freeze_box syn keyword mpDef initialize_area initialize_area_par initialize_box syn keyword mpDef initialize_box_pos initialize_par syn keyword mpDef prepare_multi_pars relocate_multipars save_multipar syn keyword mpDef set_par_line_height show_multi_pars show_par syn keyword mpDef simplify_multi_pars sort_multi_pars syn keyword mpVardef InsideSavedTextArea InsideSomeSavedTextArea syn keyword mpVardef InsideSomeTextArea InsideTextArea PrepareSyncTasks syn keyword mpVardef SyncBox TextAreaH TextAreaW TextAreaWH TextAreaX syn keyword mpVardef TextAreaXY TextAreaY TheSyncColor TheSyncThreshold syn keyword mpVardef baseline_grid graphic_grid multi_par_at_top syn keyword mpVariable CurrentSyncClass NOfSavedTextAreas syn keyword mpVariable NOfSavedTextColumns NOfSyncPaths NOfTextAreas syn keyword mpVariable NOfTextColumns PlainTextArea RegionTextArea syn keyword mpVariable SavedTextColumns SyncColor SyncLeftOffset SyncPaths syn keyword mpVariable SyncTasks SyncThreshold SyncThresholdMethod syn keyword mpVariable SyncWidth TextAreas TextColumns syn keyword mpVariable auto_multi_par_hsize boxdashtype boxfilloffset syn keyword mpVariable boxfilltype boxgriddirection boxgriddistance syn keyword mpVariable boxgridshift boxgridtype boxgridwidth boxlineradius syn keyword mpVariable boxlinetype boxlinewidth check_multi_par_chain syn keyword mpVariable compensate_multi_par_topskip syn keyword mpVariable enable_multi_par_fallback force_multi_par_chain syn keyword mpVariable ignore_multi_par_page last_multi_par_shift lefthang syn keyword mpVariable local_multi_par_area multi_column_first_page_hack syn keyword mpVariable multi_par_pages multiloc multilocs multipar syn keyword mpVariable multipars multiref multirefs nofmultipars syn keyword mpVariable obey_multi_par_hang obey_multi_par_more syn keyword mpVariable one_piece_multi_par par_hang_after par_hang_indent syn keyword mpVariable par_indent par_left_skip par_line_height syn keyword mpVariable par_right_skip par_start_pos par_stop_pos syn keyword mpVariable par_strut_depth par_strut_height ppos righthang syn keyword mpVariable snap_multi_par_tops somehang span_multi_column_pars syn keyword mpVariable use_multi_par_region syn keyword mpConstant context_core syn keyword LET anchor_area anchor_par draw_area " mp-cows.mpiv syn keyword mpConstant context_cows cow " mp-crop.mpiv syn keyword mpDef page_marks_add_color page_marks_add_lines syn keyword mpDef page_marks_add_marking page_marks_add_number syn keyword mpVardef crop_color crop_gray crop_marks_cmyk syn keyword mpVardef crop_marks_cmykrgb crop_marks_gray crop_marks_lines syn keyword mpVariable crop_colors more page syn keyword mpConstant context_crop " mp-figs.mpiv syn keyword mpDef naturalfigure registerfigure syn keyword mpVardef figuredimensions figureheight figuresize syn keyword mpVardef figurewidth syn keyword mpConstant context_figs " mp-fobg.mpiv syn keyword mpDef DrawFoFrame syn keyword mpVardef equalpaths syn keyword mpPrimaryDef inset outset syn keyword mpVariable FoBackground FoBackgroundColor FoFrame FoLineColor syn keyword mpVariable FoLineStyle FoLineWidth FoSplit syn keyword mpConstant FoAll FoBottom FoDash FoDotted FoDouble FoGroove syn keyword mpConstant FoHidden FoInset FoLeft FoMedium FoNoColor FoNone syn keyword mpConstant FoOutset FoRidge FoRight FoSolid FoThick FoThin syn keyword mpConstant FoTop context_fobg " mp-form.mpiv syn keyword mpConstant context_form " mp-func.mpiv syn keyword mpDef constructedfunction constructedpairs syn keyword mpDef constructedpath curvedfunction curvedpairs syn keyword mpDef curvedpath function pathconnectors straightfunction syn keyword mpDef straightpairs straightpath syn keyword mpConstant context_func " mp-grap.mpiv syn keyword mpDef Gfor OUT auto begingraph circles crosses diamonds syn keyword mpDef downtriangles endgraph gdata gdraw gdrawarrow syn keyword mpDef gdrawdblarrow gfill graph_addto syn keyword mpDef graph_addto_currentpicture graph_comma syn keyword mpDef graph_coordinate_multiplication graph_draw syn keyword mpDef graph_draw_label graph_errorbar_text graph_fill syn keyword mpDef graph_generate_exponents syn keyword mpDef graph_generate_label_position syn keyword mpDef graph_generate_numbers graph_label_location syn keyword mpDef graph_scan_mark graph_scan_marks graph_setbounds syn keyword mpDef graph_suffix graph_tick_label syn keyword mpDef graph_with_pen_and_color graph_withlist syn keyword mpDef graph_xyscale lefttriangles makefunctionpath plot syn keyword mpDef plotsymbol points rainbow righttriangles smoothpath syn keyword mpDef squares stars uptriangles witherrorbars syn keyword mpVardef addtopath augment autogrid constant_fit syn keyword mpVardef constant_function det escaped_format exp syn keyword mpVardef exponential_fit exponential_function format syn keyword mpVardef formatted frame functionpath gaussian_fit syn keyword mpVardef gaussian_function gdotlabel glabel graph_Feform syn keyword mpVardef graph_Meform graph_arrowhead_extent graph_bounds syn keyword mpVardef graph_clear_bounds syn keyword mpVardef graph_convert_user_path_to_internal graph_cspan syn keyword mpVardef graph_draw_arrowhead graph_error graph_errorbars syn keyword mpVardef graph_exp graph_factor_and_exponent_to_string syn keyword mpVardef graph_gridline_picture graph_is_null syn keyword mpVardef graph_label_convert_user_to_internal graph_loptok syn keyword mpVardef graph_match_exponents graph_mlog syn keyword mpVardef graph_modified_exponent_ypart graph_pair_adjust syn keyword mpVardef graph_picture_conversion graph_post_draw syn keyword mpVardef graph_read_line graph_readpath graph_remap syn keyword mpVardef graph_scan_path graph_select_exponent_mark syn keyword mpVardef graph_select_mark graph_set_bounds syn keyword mpVardef graph_set_default_bounds graph_shapesize syn keyword mpVardef graph_stash_label graph_tick_mark_spacing syn keyword mpVardef graph_unknown_pair_bbox grid isdigit itick syn keyword mpVardef linear_fit linear_function ln logten lorentzian_fit syn keyword mpVardef lorentzian_function otick polynomial_fit syn keyword mpVardef polynomial_function power_law_fit syn keyword mpVardef power_law_function powten setcoords setrange syn keyword mpVardef sortpath strfmt tick varfmt syn keyword mpNewInternal Mzero doubleinfinity graph_log_minimum syn keyword mpNewInternal graph_minimum_number_of_marks largestmantissa syn keyword mpNewInternal linear lntwo log mlogten singleinfinity syn keyword mpVariable Autoform determinant fit_chi_squared syn keyword mpVariable graph_errorbar_picture graph_exp_marks syn keyword mpVariable graph_frame_pair_a graph_frame_pair_b syn keyword mpVariable graph_lin_marks graph_log_marks graph_modified_bias syn keyword mpVariable graph_modified_higher graph_modified_lower syn keyword mpVariable graph_shape r_s resistance_color resistance_name syn keyword mpConstant context_grap " mp-grid.mpiv syn keyword mpDef hlingrid hloggrid vlingrid vloggrid syn keyword mpVardef hlinlabel hlintext hlogtext linlin linlinpath syn keyword mpVardef linlog linlogpath loglin loglinpath loglog syn keyword mpVardef loglogpath processpath vlinlabel vlintext vlogtext syn keyword mpVariable fmt_initialize fmt_pictures fmt_precision syn keyword mpVariable fmt_separator fmt_zerocheck grid_eps syn keyword mpConstant context_grid " mp-grph.mpiv syn keyword mpDef beginfig begingraphictextfig data_mpo_file syn keyword mpDef data_mpy_file doloadfigure draw endfig syn keyword mpDef endgraphictextfig fill fixedplace graphictext syn keyword mpDef loadfigure new_graphictext normalwithshade number syn keyword mpDef old_graphictext outlinefill protectgraphicmacros syn keyword mpDef resetfig reversefill withdrawcolor withfillcolor syn keyword mpDef withshade syn keyword mpVariable currentgraphictext figureshift syn keyword mpConstant context_grph " mp-idea.mpiv syn keyword mpVardef bcomponent ccomponent gcomponent mcomponent syn keyword mpVardef rcomponent somecolor ycomponent " mp-luas.mpiv syn keyword mpDef luacall message syn keyword mpVardef MP lua lualist syn keyword mpConstant context_luas " mp-mlib.mpiv syn keyword mpDef autoalign bitmapimage circular_shade cmyk comment syn keyword mpDef defineshade eofill eofillup externalfigure figure syn keyword mpDef fillup label linear_shade multitonecolor namedcolor syn keyword mpDef nofill onlayer passarrayvariable passvariable syn keyword mpDef plain_label register resolvedcolor scantokens syn keyword mpDef set_circular_vector set_linear_vector shaded syn keyword mpDef spotcolor startpassingvariable stoppassingvariable syn keyword mpDef thelabel transparent[] usemetafunlabels syn keyword mpDef useplainlabels withcircularshade withlinearshade syn keyword mpDef withmask withproperties withshadecenter syn keyword mpDef withshadecolors withshadedirection withshadedomain syn keyword mpDef withshadefactor withshadefraction withshadeorigin syn keyword mpDef withshaderadius withshadestep withshadetransform syn keyword mpDef withshadevector withtransparency syn keyword mpVardef anchored checkbounds checkedbounds syn keyword mpVardef define_circular_shade define_linear_shade dotlabel syn keyword mpVardef escaped_format fmttext fontsize format formatted syn keyword mpVardef installlabel onetimefmttext onetimetextext syn keyword mpVardef outlinetext plain_thelabel properties rawfmttext syn keyword mpVardef rawtexbox rawtextext rule strfmt strut texbox syn keyword mpVardef textext thefmttext thelabel thetexbox thetextext syn keyword mpVardef tostring transparency_alternative_to_number syn keyword mpVardef validtexbox varfmt verbatim syn keyword mpPrimaryDef asgroup infont normalinfont shadedinto syn keyword mpPrimaryDef shownshadecenter shownshadedirection syn keyword mpPrimaryDef shownshadeorigin shownshadevector withshade syn keyword mpPrimaryDef withshademethod syn keyword mpNewInternal colorburntransparent colordodgetransparent syn keyword mpNewInternal colortransparent darkentransparent syn keyword mpNewInternal differencetransparent exclusiontransparent syn keyword mpNewInternal hardlighttransparent huetransparent syn keyword mpNewInternal lightentransparent luminositytransparent syn keyword mpNewInternal multiplytransparent normaltransparent syn keyword mpNewInternal overlaytransparent saturationtransparent syn keyword mpNewInternal screentransparent shadefactor softlighttransparent syn keyword mpNewInternal textextoffset syn keyword mpType property transparency syn keyword mpVariable currentoutlinetext shadeddown shadedleft syn keyword mpVariable shadedright shadedup shadeoffset trace_shades syn keyword mpConstant context_mlib " mp-page.mpiv syn keyword mpDef BoundCoverAreas BoundPageAreas Enlarged FakeRule syn keyword mpDef FakeWord LoadPageState OverlayBox RuleColor syn keyword mpDef SetAreaVariables SetPageArea SetPageBackPage syn keyword mpDef SetPageCoverPage SetPageField SetPageFrontPage syn keyword mpDef SetPageHsize SetPageHstep SetPageLocation syn keyword mpDef SetPagePage SetPageSpine SetPageVariables syn keyword mpDef SetPageVsize SetPageVstep StartCover StartPage syn keyword mpDef StopCover StopPage SwapPageState innerenlarged syn keyword mpDef llEnlarged lrEnlarged outerenlarged ulEnlarged syn keyword mpDef urEnlarged syn keyword mpVardef BackPageHeight BackPageWidth BackSpace BaseLineSkip syn keyword mpVardef BodyFontSize BottomDistance BottomHeight syn keyword mpVardef BottomSpace CoverHeight CoverWidth CurrentColumn syn keyword mpVardef CurrentHeight CurrentWidth CutSpace EmWidth syn keyword mpVardef ExHeight FooterDistance FooterHeight syn keyword mpVardef FrontPageHeight FrontPageWidth HSize HeaderDistance syn keyword mpVardef HeaderHeight InPageBody InnerEdgeDistance syn keyword mpVardef InnerEdgeWidth InnerMarginDistance InnerMarginWidth syn keyword mpVardef InnerSpaceWidth LastPageNumber LayoutColumnDistance syn keyword mpVardef LayoutColumnWidth LayoutColumns LeftEdgeDistance syn keyword mpVardef LeftEdgeWidth LeftMarginDistance LeftMarginWidth syn keyword mpVardef LineHeight MakeupHeight MakeupWidth NOfColumns syn keyword mpVardef NOfPages OnOddPage OnRightPage OuterEdgeDistance syn keyword mpVardef OuterEdgeWidth OuterMarginDistance OuterMarginWidth syn keyword mpVardef OuterSpaceWidth OverlayDepth OverlayHeight syn keyword mpVardef OverlayLineWidth OverlayOffset OverlayWidth syn keyword mpVardef PageDepth PageFraction PageNumber PageOffset syn keyword mpVardef PaperBleed PaperHeight PaperWidth PrintPaperHeight syn keyword mpVardef PrintPaperWidth RealPageNumber RightEdgeDistance syn keyword mpVardef RightEdgeWidth RightMarginDistance RightMarginWidth syn keyword mpVardef SpineHeight SpineWidth StrutDepth StrutHeight syn keyword mpVardef TextHeight TextWidth TopDistance TopHeight TopSkip syn keyword mpVardef TopSpace VSize defaultcolormodel syn keyword mpVariable Area BackPage CoverPage CurrentLayout Field syn keyword mpVariable FrontPage HorPos Hsize Hstep Location Page syn keyword mpVariable PageStateAvailable RuleDepth RuleDirection syn keyword mpVariable RuleFactor RuleH RuleHeight RuleOffset RuleOption syn keyword mpVariable RuleThickness RuleV RuleWidth Spine VerPos Vsize syn keyword mpVariable Vstep syn keyword mpConstant context_page " mp-shap.mpiv syn keyword mpDef drawline drawshape some_shape syn keyword mpDef start_predefined_shape_definition syn keyword mpDef stop_predefined_shape_definition syn keyword mpVardef drawpredefinedline drawpredefinedshape syn keyword mpVardef some_shape_path syn keyword mpVariable predefined_shapes predefined_shapes_xradius syn keyword mpVariable predefined_shapes_xxradius syn keyword mpVariable predefined_shapes_yradius syn keyword mpVariable predefined_shapes_yyradius syn keyword mpConstant context_shap " mp-step.mpiv syn keyword mpDef initialize_step_variables midbottomboundary syn keyword mpDef midtopboundary step_begin_cell step_begin_chart syn keyword mpDef step_cell_ali step_cell_bot step_cell_top syn keyword mpDef step_cells step_end_cell step_end_chart syn keyword mpDef step_text_bot step_text_mid step_text_top syn keyword mpDef step_texts syn keyword mpVariable cell_distance_x cell_distance_y cell_fill_color syn keyword mpVariable cell_line_color cell_line_width cell_offset syn keyword mpVariable chart_align chart_category chart_vertical syn keyword mpVariable line_distance line_height line_line_color syn keyword mpVariable line_line_width line_offset nofcells syn keyword mpVariable text_distance_set text_fill_color text_line_color syn keyword mpVariable text_line_width text_offset syn keyword mpConstant context_cell " mp-symb.mpiv syn keyword mpDef finishglyph prepareglyph syn keyword mpConstant lefttriangle midbar onebar righttriangle sidebar syn keyword mpConstant sublefttriangle subrighttriangle twobar " mp-text.mpiv syn keyword mpDef build_parshape syn keyword mpVardef found_point syn keyword mpVariable trace_parshape syn keyword mpConstant context_text " mp-tool.mpiv syn keyword mpCommand dump syn keyword mpDef addbackground b_color beginglyph break centerarrow syn keyword mpDef clearxy condition data_mpd_file detaileddraw syn keyword mpDef detailpaths dowithpath draw drawboundary syn keyword mpDef drawboundingbox drawcontrollines drawcontrolpoints syn keyword mpDef drawfill draworigin drawpath drawpathonly syn keyword mpDef drawpathwithpoints drawpoint drawpointlabels syn keyword mpDef drawpoints drawticks drawwholepath drawxticks syn keyword mpDef drawyticks endglyph fill finishsavingdata g_color syn keyword mpDef inner_boundingbox job_name leftarrow loadmodule syn keyword mpDef midarrowhead naturalizepaths newboolean newcolor syn keyword mpDef newnumeric newpair newpath newpicture newstring syn keyword mpDef newtransform normalcolors normaldraw normalfill syn keyword mpDef normalwithcolor outer_boundingbox pop_boundingbox syn keyword mpDef popboundingbox popcurrentpicture push_boundingbox syn keyword mpDef pushboundingbox pushcurrentpicture r_color readfile syn keyword mpDef recolor redraw refill register_dirty_chars syn keyword mpDef remapcolor remapcolors remappedcolor reprocess syn keyword mpDef resetarrows resetcolormap resetdrawoptions syn keyword mpDef resolvedcolor restroke retext rightarrow savedata syn keyword mpDef saveoptions scale_currentpicture set_ahlength syn keyword mpDef set_grid showgrid startplaincompatibility syn keyword mpDef startsavingdata stopplaincompatibility syn keyword mpDef stopsavingdata stripe_path_a stripe_path_n undashed syn keyword mpDef undrawfill untext visualizeddraw visualizedfill syn keyword mpDef visualizepaths withcolor withgray syn keyword mpDef xscale_currentpicture xshifted syn keyword mpDef xyscale_currentpicture yscale_currentpicture syn keyword mpDef yshifted syn keyword mpVardef acos acosh anglebetween area arrowhead syn keyword mpVardef arrowheadonpath arrowpath asciistring asin asinh syn keyword mpVardef atan basiccolors bbheight bbwidth bcomponent syn keyword mpVardef blackcolor bottomboundary boundingbox c_phantom syn keyword mpVardef ccomponent center cleanstring colorcircle syn keyword mpVardef colordecimals colordecimalslist colorlike colorpart syn keyword mpVardef colortype complementary complemented copylist cos syn keyword mpVardef cosh cot cotd curved ddddecimal dddecimal ddecimal syn keyword mpVardef decorated drawarrowpath epsed exp freedotlabel syn keyword mpVardef freelabel gcomponent getunstringed grayed greyed syn keyword mpVardef hsvtorgb infinite innerboundingbox interpolated inv syn keyword mpVardef invcos inverted invsin invtan laddered leftboundary syn keyword mpVardef leftpath leftrightpath listsize listtocurves syn keyword mpVardef listtolines ln log mcomponent new_on_grid syn keyword mpVardef outerboundingbox paired pen_size penpoint phantom syn keyword mpVardef pointarrow pow punked rangepath rcomponent syn keyword mpVardef redecorated repathed rightboundary rightpath syn keyword mpVardef rotation roundedsquare set_inner_boundingbox syn keyword mpVardef set_outer_boundingbox setunstringed shapedlist syn keyword mpVardef simplified sin sinh sortlist sqr straightpath tan syn keyword mpVardef tand tanh tensecircle thefreelabel topboundary syn keyword mpVardef tripled undecorated unitvector unspiked unstringed syn keyword mpVardef whitecolor ycomponent syn keyword mpPrimaryDef along blownup bottomenlarged cornered crossed syn keyword mpPrimaryDef enlarged enlonged leftenlarged llenlarged llmoved syn keyword mpPrimaryDef lrenlarged lrmoved on paralleled randomized syn keyword mpPrimaryDef randomizedcontrols randomshifted rightenlarged syn keyword mpPrimaryDef shortened sized smoothed snapped softened squeezed syn keyword mpPrimaryDef stretched superellipsed topenlarged ulenlarged syn keyword mpPrimaryDef ulmoved uncolored urenlarged urmoved xsized syn keyword mpPrimaryDef xstretched xyscaled xysized ysized ystretched zmod syn keyword mpSecondaryDef anglestriped intersection_point numberstriped syn keyword mpSecondaryDef peepholed syn keyword mpTertiaryDef cutends syn keyword mpNewInternal ahdimple ahvariant anglelength anglemethod syn keyword mpNewInternal angleoffset charscale cmykcolormodel graycolormodel syn keyword mpNewInternal greycolormodel maxdimensions metapostversion syn keyword mpNewInternal nocolormodel rgbcolormodel striped_normal_inner syn keyword mpNewInternal striped_normal_outer striped_reverse_inner syn keyword mpNewInternal striped_reverse_outer syn keyword mpType grayscale greyscale quadruplet triplet syn keyword mpVariable ahfactor collapse_data color_map drawoptionsfactor syn keyword mpVariable freedotlabelsize freelabeloffset grid grid_full syn keyword mpVariable grid_h grid_left grid_nx grid_ny grid_w grid_x syn keyword mpVariable grid_y intersection_found originlength syn keyword mpVariable plain_compatibility_data pointlabelfont syn keyword mpVariable pointlabelscale refillbackground savingdata syn keyword mpVariable savingdatadone swappointlabels ticklength tickstep syn keyword mpConstant CRLF DQUOTE PERCENT SPACE bcircle context_tool crlf syn keyword mpConstant darkblue darkcyan darkgray darkgreen darkmagenta syn keyword mpConstant darkred darkyellow downtriangle dquote freesquare syn keyword mpConstant fulldiamond fullsquare fulltriangle lcircle syn keyword mpConstant lefttriangle lightgray llcircle lltriangle lrcircle syn keyword mpConstant lrtriangle mpversion nocolor noline oddly syn keyword mpConstant originpath percent rcircle righttriangle space syn keyword mpConstant tcircle triangle ulcircle ultriangle unitcircle syn keyword mpConstant unitdiamond unittriangle uptriangle urcircle syn keyword mpConstant urtriangle endif " MetaFun macros " Define the default highlighting hi def link mpTeXdelim mpPrimitive hi def link mpBoolExp mfBoolExp hi def link mpNumExp mfNumExp hi def link mpPairExp mfPairExp hi def link mpPathExp mfPathExp hi def link mpPenExp mfPenExp hi def link mpPicExp mfPicExp hi def link mpStringExp mfStringExp hi def link mpInternal mfInternal hi def link mpCommand mfCommand hi def link mpType mfType hi def link mpPrimitive mfPrimitive hi def link mpDef mfDef hi def link mpVardef mpDef hi def link mpPrimaryDef mpDef hi def link mpSecondaryDef mpDef hi def link mpTertiaryDef mpDef hi def link mpNewInternal mpInternal hi def link mpVariable mfVariable hi def link mpConstant mfConstant hi def link mpOnOff mpPrimitive hi def link mpDash mpPrimitive hi def link mpTeXKeyword Identifier let b:current_syntax = "mp" let &cpo = s:cpo_sav unlet! s:cpo_sav " vim:sw=2