Add comments for some extensions + test

This commit is contained in:
Adam Stankiewicz
2020-10-04 21:17:06 +02:00
parent d221139bd7
commit b4868c7ea7
10 changed files with 187 additions and 190 deletions

View File

@@ -7,7 +7,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cpp-modern') ==
" http://www.vim.org/scripts/script.php?script_id=3064
" Maintainer: bfrg <bfrg@users.noreply.github.com>
" Website: https://github.com/bfrg/vim-cpp-modern
" Last Change: Mar 14, 2020
" Last Change: Oct 4, 2020
"
" Extended C syntax highlighting including highlighting of user-defined
" functions.
@@ -17,7 +17,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cpp-modern') ==
" ==============================================================================
" Highlight some additional keywords in the comments
" Highlight additional keywords in the comments
syn keyword cTodo contained BUG NOTE
@@ -50,25 +50,4 @@ if get(g:, 'cpp_simple_highlight', 0)
hi link cLabel Statement
endif
" Operators
" syn match cOperator "\(<<\|>>\|[-+*/%&^|<>!=]\)="
" syn match cOperator "<<\|>>\|&&\|||\|++\|--\|->"
" syn match cOperator "[.!~*&%<>^|=,+-]"
" syn match cOperator "/[^/*=]"me=e-1
" syn match cOperator "/$"
" syn match cOperator "&&\|||"
" syn match cOperator "[][]"
" Preprocessor
" syn keyword cDefined defined contained containedin=cDefine
" hi def link cDefined cDefine
" Delimiters
" syn match cDelimiter "[();\\]"
" hi def link cDelimiter Delimiter
" foldmethod=syntax fix, courtesy of Ivan Freitas
" syn match cBraces display "[{}]"
" hi def link cBraces Delimiter
endif

View File

@@ -6,7 +6,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cpp-modern') ==
" Original Author: Jon Haggblad <https://github.com/octol>
" Maintainer: bfrg <https://github.com/bfrg>
" Website: https://github.com/bfrg/vim-cpp-modern
" Last Change: Oct 1, 2020
" Last Change: Oct 4, 2020
"
" This syntax file is based on:
" https://github.com/octol/vim-cpp-enhanced-highlight
@@ -14,17 +14,17 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cpp-modern') ==
" ==============================================================================
" Standard library {{{1
syntax keyword cppSTLconstant
syntax keyword cppSTLdefine
\ MB_CUR_MAX MB_LEN_MAX WCHAR_MAX WCHAR_MIN WEOF __STDC_UTF_16__ __STDC_UTF_32__
syntax keyword cppSTLnamespace
\ std experimental rel_ops
syntax keyword cppSTLconstant
\ badbit digits digits10 eofbit failbit goodbit has_denorm has_denorm_loss has_infinity has_quiet_NaN has_signaling_NaN is_bounded is_exact is_iec559 is_integer is_modulo is_signed is_specialized max_exponent max_exponent10 min_exponent min_exponent10 nothrow npos radix round_style tinyness_before traps
\ badbit digits digits10 eofbit failbit goodbit has_denorm has_denorm_loss has_infinity has_quiet_NaN has_signaling_NaN is_bounded is_exact is_iec559 is_integer is_modulo is_signed is_specialized max_exponent max_exponent10 min_exponent min_exponent10 npos radix round_style tinyness_before traps
syntax keyword cppSTLvariable
\ cerr cin clog cout wcerr wcin wclog wcout
\ cerr cin clog cout wcerr wcin wclog wcout nothrow
syntax keyword cppSTLexception
\ bad_alloc bad_exception bad_typeid bad_cast domain_error exception failure invalid_argument length_error logic_error out_of_range overflow_error range_error runtime_error underflow_error
@@ -36,7 +36,10 @@ syntax keyword cppSTLios
\ boolalpha dec defaultfloat fixed hex hexfloat internal left noboolalpha noshowbase noshowpoint noshowpos noskipws nounitbuf nouppercase oct right scientific showbase showpoint showpos skipws unitbuf uppercase
syntax keyword cppSTLtype
\ fmtflags iostate openmode Init allocator auto_ptr basic_filebuf basic_fstream basic_ifstream basic_ios basic_iostream basic_istream basic_istringstream basic_ofstream basic_ostream basic_ostringstream basic_streambuf basic_string basic_stringbuf basic_stringstream binary_compose binder1st binder2nd bitset char_traits char_type const_mem_fun1_t const_mem_fun_ref1_t const_mem_fun_ref_t const_mem_fun_t const_pointer const_reference container_type deque difference_type div_t double_t event_callback filebuf first_type float_denorm_style float_round_style float_t fpos fstream gslice_array ifstream imaxdiv_t indirect_array int_type ios ios_base iostream istream istringstream istrstream iterator_category iterator_traits key_compare key_type ldiv_t list lldiv_t map mapped_type mask_array mbstate_t mem_fun1_t mem_fun_ref1_t mem_fun_ref_t mem_fun_t multimap multiset nothrow_t numeric_limits off_type ofstream ostream ostringstream ostrstream pair pointer pointer_to_binary_function pointer_to_unary_function pos_type priority_queue queue reference second_type seekdir sequence_buffer set sig_atomic_t size_type slice_array stack state_type stream streambuf streamoff streampos streamsize string stringbuf stringstream strstream strstreambuf temporary_buffer test_type time_t tm traits_type type_info u16string u32string unary_compose unary_negate valarray value_compare value_type vector wctrans_t wctype_t wfilebuf wfstream wifstream wint_t wios wiostream wistream wistringstream wofstream wostream wostringstream wstreambuf wstreampos wstring wstringbuf wstringstream codecvt codecvt_base codecvt_byname collate collate_byname ctype ctype_base ctype_byname locale messages messages_base messages_byname money_base money_get money_put moneypunct moneypunct_byname num_get num_put numpunct numpunct_byname time_base time_get time_get_byname time_put time_put_byname binary_function binary_negate bit_and bit_not bit_or divides equal_to greater greater_equal less less_equal logical_and logical_not logical_or minus modulus multiplies negate not_equal_to plus unary_function unary_negate bidirectional_iterator_tag forward_iterator_tag input_iterator_tag output_iterator_tag random_access_iterator_tag
\ fmtflags iostate openmode Init allocator auto_ptr basic_filebuf basic_fstream basic_ifstream basic_ios basic_iostream basic_istream basic_istringstream basic_ofstream basic_ostream basic_ostringstream basic_streambuf basic_string basic_stringbuf basic_stringstream binary_compose binder1st binder2nd bitset char_traits char_type const_mem_fun1_t const_mem_fun_ref1_t const_mem_fun_ref_t const_mem_fun_t const_pointer const_reference container_type deque difference_type div_t event_callback filebuf first_type float_denorm_style float_round_style fpos fstream gslice_array ifstream imaxdiv_t indirect_array int_type ios ios_base iostream istream istringstream istrstream iterator_category iterator_traits key_compare key_type ldiv_t list lldiv_t map mapped_type mask_array mbstate_t mem_fun1_t mem_fun_ref1_t mem_fun_ref_t mem_fun_t multimap multiset nothrow_t numeric_limits off_type ofstream ostream ostringstream ostrstream pair pointer pointer_to_binary_function pointer_to_unary_function pos_type priority_queue queue reference second_type seekdir sequence_buffer set size_type slice_array stack state_type stream streambuf streamoff streampos streamsize string stringbuf stringstream strstream strstreambuf temporary_buffer test_type tm traits_type type_info u16string u32string unary_compose unary_negate valarray value_compare value_type vector wfilebuf wfstream wifstream wios wiostream wistream wistringstream wofstream wostream wostringstream wstreambuf wstreampos wstring wstringbuf wstringstream codecvt codecvt_base codecvt_byname collate collate_byname ctype ctype_base ctype_byname locale messages messages_base messages_byname money_base money_get money_put moneypunct moneypunct_byname num_get num_put numpunct numpunct_byname time_base time_get time_get_byname time_put time_put_byname binary_function binary_negate bit_and bit_not bit_or divides equal_to greater greater_equal less less_equal logical_and logical_not logical_or minus modulus multiplies negate not_equal_to plus unary_function unary_negate bidirectional_iterator_tag forward_iterator_tag input_iterator_tag output_iterator_tag random_access_iterator_tag
syntax keyword cppSTLtypedef
\ time_t sig_atomic_t wctrans_t wctype_t wint_t
syntax keyword cppSTLiterator
\ back_insert_iterator bidirectional_iterator const_iterator const_reverse_iterator forward_iterator front_insert_iterator input_iterator insert_iterator istream_iterator istreambuf_iterator iterator ostream_iterator ostreambuf_iterator output_iterator random_access_iterator raw_storage_iterator reverse_bidirectional_iterator reverse_iterator
@@ -58,13 +61,18 @@ if !exists('cpp_no_cpp11')
syntax keyword cppSTLnamespace chrono this_thread
syntax keyword cppSTLtype
\ array atomic atomic_bool atomic_char atomic_char16_t atomic_char32_t atomic_flag atomic_int atomic_int_fast16_t atomic_int_fast32_t atomic_int_fast64_t atomic_int_fast8_t atomic_int_least16_t atomic_int_least32_t atomic_int_least64_t atomic_int_least8_t atomic_intmax_t atomic_intptr_t atomic_llong atomic_long atomic_ptrdiff_t atomic_schar atomic_short atomic_size_t atomic_uchar atomic_uint atomic_uint_fast16_t atomic_uint_fast32_t atomic_uint_fast64_t atomic_uint_fast8_t atomic_uint_least16_t atomic_uint_least32_t atomic_uint_least64_t atomic_uint_least8_t atomic_uintmax_t atomic_uintptr_t atomic_ullong atomic_ulong atomic_ushort atomic_wchar_t duration duration_values high_resolution_clock hours microseconds milliseconds minutes nanoseconds seconds steady_clock system_clock time_point treat_as_floating_point condition_variable nullptr_t max_align_t exception_ptr nested_exception hash is_bind_expression is_placeholder reference_wrapper forward_list future packaged_task promise shared_future initializer_list codecvt_mode codecvt_utf16 codecvt_utf8 codecvt_utf8_utf16 wbuffer_convert wstring_convert allocator_arg_t allocator_traits allocator_type default_delete enable_shared_from_this is_always_equal owner_less pointer_safety pointer_traits propagate_on_container_copy_assignment propagate_on_container_move_assignment propagate_on_container_swap rebind_alloc rebind_traits shared_ptr unique_ptr uses_allocator void_pointer const_void_pointer weak_ptr adopt_lock_t condition_variable_any defer_lock_t lock_guard mutex once_flag recursive_mutex recursive_timed_mutex timed_mutex try_to_lock_t unique_lock bernoulli_distribution binomial_distribution cauchy_distribution chi_squared_distribution default_random_engine discard_block_engine discrete_distribution exponential_distribution extreme_value_distribution fisher_f_distribution gamma_distribution geometric_distribution independent_bits_engine knuth_b linear_congruential_engine lognormal_distribution mersenne_twister_engine minstd_rand minstd_rand0 mt19937 mt19937_64 negative_binomial_distribution normal_distribution piecewise_constant_distribution piecewise_linear_distribution poisson_distribution random_device ranlux24 ranlux24_base ranlux48 ranlux48_base seed_seq shuffle_order_engine student_t_distribution subtract_with_carry_engine uniform_int_distribution uniform_real_distribution weibull_distribution atto centi deca deci exa femto giga hecto kilo mega micro milli nano peta pico ratio ratio_add ratio_divide ratio_equal ratio_greater ratio_greater_equal ratio_less ratio_less_equal ratio_multiply ratio_not_equal ratio_subtract tera yocto yotta zepto zetta basic_regex match_results regex_traits sub_match syntax_option_type match_flag_type error_type scoped_allocator_adaptor outer_allocator_type inner_allocator_type error_code error_condition error_category is_error_code_enum is_error_condition_enum thread tuple tuple_size tuple_element type_index add_const add_cv add_lvalue_reference add_pointer add_rvalue_reference add_volatile aligned_storage aligned_union alignment_of common_type conditional decay enable_if extent false_type has_virtual_destructor integral_constant is_abstract is_arithmetic is_array is_assignable is_base_of is_class is_compound is_const is_constructible is_convertible is_copy_assignable is_copy_constructible is_default_constructible is_destructible is_empty is_enum is_floating_point is_function is_fundamental is_integral is_literal_type is_lvalue_reference is_member_function_pointer is_member_object_pointer is_member_pointer is_move_assignable is_move_constructible is_nothrow_assignable is_nothrow_constructible is_nothrow_copy_assignable is_nothrow_copy_constructible is_nothrow_default_constructible is_nothrow_destructible is_nothrow_move_assignable is_nothrow_move_constructible is_object is_pod is_pointer is_polymorphic is_reference is_rvalue_reference is_same is_scalar is_signed is_standard_layout is_trivial is_trivially_assignable is_trivially_constructible is_trivially_copy_assignable is_trivially_copy_constructible is_trivially_copyable is_trivially_default_constructible is_trivially_destructible is_trivially_move_assignable is_trivially_move_constructible is_union is_unsigned is_void is_volatile make_signed make_unsigned rank remove_all_extents remove_const remove_cv remove_extent remove_pointer remove_reference remove_volatile result_of true_type underlying_type hasher key_equal unordered_map unordered_multimap unordered_multiset unordered_set piecewise_construct_t function
\ array atomic atomic_bool atomic_char atomic_flag atomic_int atomic_llong atomic_long atomic_schar atomic_short atomic_uchar atomic_uint atomic_ullong atomic_ulong atomic_ushort duration duration_values high_resolution_clock hours microseconds milliseconds minutes nanoseconds seconds steady_clock system_clock time_point treat_as_floating_point condition_variable exception_ptr nested_exception hash is_bind_expression is_placeholder reference_wrapper forward_list future packaged_task promise shared_future initializer_list codecvt_mode codecvt_utf16 codecvt_utf8 codecvt_utf8_utf16 wbuffer_convert wstring_convert allocator_traits allocator_type default_delete enable_shared_from_this is_always_equal owner_less pointer_safety pointer_traits propagate_on_container_copy_assignment propagate_on_container_move_assignment propagate_on_container_swap rebind_alloc rebind_traits shared_ptr unique_ptr uses_allocator void_pointer const_void_pointer weak_ptr condition_variable_any lock_guard mutex once_flag recursive_mutex recursive_timed_mutex timed_mutex unique_lock bernoulli_distribution binomial_distribution cauchy_distribution chi_squared_distribution default_random_engine discard_block_engine discrete_distribution exponential_distribution extreme_value_distribution fisher_f_distribution gamma_distribution geometric_distribution independent_bits_engine knuth_b linear_congruential_engine lognormal_distribution mersenne_twister_engine minstd_rand minstd_rand0 mt19937 mt19937_64 negative_binomial_distribution normal_distribution piecewise_constant_distribution piecewise_linear_distribution poisson_distribution random_device ranlux24 ranlux24_base ranlux48 ranlux48_base seed_seq shuffle_order_engine student_t_distribution subtract_with_carry_engine uniform_int_distribution uniform_real_distribution weibull_distribution atto centi deca deci exa femto giga hecto kilo mega micro milli nano peta pico ratio ratio_add ratio_divide ratio_equal ratio_greater ratio_greater_equal ratio_less ratio_less_equal ratio_multiply ratio_not_equal ratio_subtract tera yocto yotta zepto zetta basic_regex match_results regex_traits sub_match syntax_option_type match_flag_type error_type scoped_allocator_adaptor outer_allocator_type inner_allocator_type error_code error_condition error_category is_error_code_enum is_error_condition_enum thread tuple tuple_size tuple_element type_index add_const add_cv add_lvalue_reference add_pointer add_rvalue_reference add_volatile aligned_storage aligned_union alignment_of common_type conditional decay enable_if extent false_type has_virtual_destructor integral_constant is_abstract is_arithmetic is_array is_assignable is_base_of is_class is_compound is_const is_constructible is_convertible is_copy_assignable is_copy_constructible is_default_constructible is_destructible is_empty is_enum is_floating_point is_function is_fundamental is_integral is_literal_type is_lvalue_reference is_member_function_pointer is_member_object_pointer is_member_pointer is_move_assignable is_move_constructible is_nothrow_assignable is_nothrow_constructible is_nothrow_copy_assignable is_nothrow_copy_constructible is_nothrow_default_constructible is_nothrow_destructible is_nothrow_move_assignable is_nothrow_move_constructible is_object is_pod is_pointer is_polymorphic is_reference is_rvalue_reference is_same is_scalar is_signed is_standard_layout is_trivial is_trivially_assignable is_trivially_constructible is_trivially_copy_assignable is_trivially_copy_constructible is_trivially_copyable is_trivially_default_constructible is_trivially_destructible is_trivially_move_assignable is_trivially_move_constructible is_union is_unsigned is_void is_volatile make_signed make_unsigned rank remove_all_extents remove_const remove_cv remove_extent remove_pointer remove_reference remove_volatile result_of true_type underlying_type hasher key_equal unordered_map unordered_multimap unordered_multiset unordered_set function
syntax keyword cppSTLconstant
\ _1 _2 _3 _4 _5 _6 _7 _8 _9 max_digits10 allocator_arg defer_lock try_to_lock adopt_lock math_errhandling
syntax keyword cppSTLtypedef
\ atomic_char16_t atomic_char32_t atomic_int_fast16_t atomic_int_fast32_t atomic_int_fast64_t atomic_int_fast8_t atomic_int_least16_t atomic_int_least32_t atomic_int_least64_t atomic_int_least8_t atomic_intmax_t atomic_intptr_t atomic_ptrdiff_t atomic_size_t atomic_uint_fast16_t atomic_uint_fast32_t atomic_uint_fast64_t atomic_uint_fast8_t atomic_uint_least16_t atomic_uint_least32_t atomic_uint_least64_t atomic_uint_least8_t atomic_uintmax_t atomic_uintptr_t atomic_wchar_t nullptr_t max_align_t allocator_arg_t adopt_lock_t defer_lock_t try_to_lock_t piecewise_construct_t
syntax keyword cppSTLconstant
\ FLT_EVAL_METHOD FP_INFINITE FP_NAN FP_NORMAL FP_SUBNORMAL FP_ZERO HUGE_VALF HUGE_VALL INFINITY MATH_ERREXCEPT MATH_ERRNO NAN
syntax keyword cppSTLconstant max_digits10
syntax keyword cppSTLvariable
\ _1 _2 _3 _4 _5 _6 _7 _8 _9 defer_lock try_to_lock adopt_lock allocator_arg
syntax keyword cppSTLdefine
\ math_errhandling FLT_EVAL_METHOD FP_INFINITE FP_NAN FP_NORMAL FP_SUBNORMAL FP_ZERO HUGE_VALF HUGE_VALL INFINITY MATH_ERREXCEPT MATH_ERRNO NAN
syntax keyword cppSTLenum
\ memory_order future_status future_errc launch io_errc cv_status errc
@@ -79,8 +87,8 @@ if !exists('cpp_no_cpp11')
syntax keyword cppSTLiterator
\ move_iterator regex_iterator regex_token_iterator const_local_iterator local_iterator
" Note: ignore is also a function (could also be put under cppSTLvariable)
syntax match cppSTLconstant "\<ignore\>(\@!"
" Note: ignore is also a function
syntax match cppSTLvariable "\<ignore\>(\@!"
endif
@@ -91,7 +99,10 @@ if !exists('cpp_no_cpp14')
syntax keyword cppSTLfunction make_unique
syntax keyword cppSTLtype
\ index_sequence index_sequence_for integer_sequence make_index_sequence make_integer_sequence shared_lock shared_timed_mutex tuple_element_t add_const_t add_cv_t add_lvalue_reference_t add_pointer_t add_rvalue_reference_t add_volatile_t aligned_storage_t aligned_union_t common_type_t conditional_t decay_t enable_if_t is_null_pointer make_signed_t make_unsigned_t remove_all_extents_t remove_const_t remove_cv_t remove_extent_t remove_pointer_t remove_reference_t remove_volatile_t result_of_t underlying_type_t
\ index_sequence index_sequence_for integer_sequence make_index_sequence make_integer_sequence shared_lock shared_timed_mutex is_null_pointer
syntax keyword cppSTLtypedef
\ tuple_element_t add_const_t add_cv_t add_lvalue_reference_t add_pointer_t add_rvalue_reference_t add_volatile_t aligned_storage_t aligned_union_t common_type_t conditional_t decay_t enable_if_t make_signed_t make_unsigned_t remove_all_extents_t remove_const_t remove_cv_t remove_extent_t remove_pointer_t remove_reference_t remove_volatile_t result_of_t underlying_type_t
endif
@@ -100,7 +111,10 @@ if !exists('cpp_no_cpp17')
syntax keyword cppSTLnamespace filesystem execution
syntax keyword cppSTLtype
\ any is_execution_policy parallel_policy parallel_unsequenced_policy sequenced_policy directory_entry directory_iterator file_status file_time_type path recursive_directory_iterator space_info default_order default_order_t default_searcher boyer_moore_searcher boyer_moore_horspool_searcher memory_resource monotonic_buffer_resource polymorphic_allocator pool_options synchronized_pool_resource unsynchronized_pool_resource scoped_lock optional nullopt_t shared_mutex basic_string_view string_view u16string_view u32string_view wstring_view bool_constant conjunction disjunction has_unique_object_representations invoke_result invoke_result_t is_aggregate is_callable is_invocable is_invocable_r is_nothrow_invocable is_nothrow_invocable_r is_nothrow_swappable is_nothrow_swappable_with is_nowthrow_callable is_swappable is_swappable_with negation void_t node_type insert_return_type in_place_tag in_place_t in_place_type_t in_place_index_t monostate variant variant_size variant_alternative variant_alternative_t
\ any is_execution_policy parallel_policy parallel_unsequenced_policy sequenced_policy directory_entry directory_iterator file_status file_time_type path recursive_directory_iterator space_info default_order default_searcher boyer_moore_searcher boyer_moore_horspool_searcher memory_resource monotonic_buffer_resource polymorphic_allocator pool_options synchronized_pool_resource unsynchronized_pool_resource scoped_lock optional shared_mutex basic_string_view string_view u16string_view u32string_view wstring_view bool_constant conjunction disjunction has_unique_object_representations invoke_result is_aggregate is_callable is_invocable is_invocable_r is_nothrow_invocable is_nothrow_invocable_r is_nothrow_swappable is_nothrow_swappable_with is_nowthrow_callable is_swappable is_swappable_with negation node_type insert_return_type in_place_tag monostate variant variant_size variant_alternative
syntax keyword cppSTLtypedef
\ invoke_result_t default_order_t nullopt_t void_t in_place_t in_place_type_t in_place_index_t variant_alternative_t
syntax keyword cppSTLexception
\ bad_any_cast filesystem_error bad_optional_access bad_variant_access
@@ -120,12 +134,12 @@ if !exists('cpp_no_cpp17')
" Note: There is std::filesystem::path::format and std::format() in <format>
syntax match cppSTLenum "\<format\>(\@!"
" Note: these can be both member objects and methods
syntax match cppSTLvariable "\<\%(capacity\|free\|available\)\>(\@!"
" Note: these keywords are very likely to coincide with user-defined variables
" syntax keyword cppSTLconstant
" \ all mask unknown replace add remove nofollow none not_found regular directory symlink block character fifo socket unknown
" Note: these are also functions
" syntax keyword cppSTLconstant capacity free available
endif
@@ -136,7 +150,10 @@ if !exists('cpp_no_cpp20')
syntax keyword cppSTLvariable default_sentinel unreachable_sentinel
syntax keyword cppSTLtype
\ atomic_ref endian weak_ordering strong_ordering partial_ordering weak_equality strong_equality common_comparison_category common_comparison_category_t contract_violation coroutine_traits coroutine_handle noop_coroutine_handle noop_coroutine_promise suspend_never suspend_always remove_cvref remove_cvref_t is_bounded_array is_layout_compatible is_unbounded_array is_nothrow_convertible has_strong_structural_equality is_pointer_interconvertible_base_of unwrap_reference unwrap_reference_t unwrap_ref_decay unwrap_ref_decay_t basic_common_reference common_reference common_reference_t iterator_t sentinel_t dangling safe_iterator_t safe_subrange_t ref_view filter_view transform_view iota_view join_view empty_view single_view split_view common_view reverse_view view_interface span basic_syncbuf basic_osyncstream syncbuf wsyncbuf osyncstream wosyncstream jthread latch barrier stop_token stop_source stop_callback counting_semaphore binary_semaphore source_location compare_three_way_result compare_three_way_result_t contiguous_iterator_tag incrementable_traits iter_value_t iter_reference_t iter_difference_t iter_rvalue_reference_t iter_common_reference_t indirectly_readable_traits move_sentinel default_sentinel_t unreachable_sentinel_t common_iterator counted_iterator indirect_result_t projected type_identity type_identity_t
\ atomic_ref endian weak_ordering strong_ordering partial_ordering weak_equality strong_equality common_comparison_category contract_violation coroutine_traits coroutine_handle noop_coroutine_handle noop_coroutine_promise suspend_never suspend_always remove_cvref is_bounded_array is_layout_compatible is_unbounded_array is_nothrow_convertible has_strong_structural_equality is_pointer_interconvertible_base_of unwrap_reference unwrap_ref_decay basic_common_reference common_reference dangling ref_view filter_view transform_view iota_view join_view empty_view single_view split_view common_view reverse_view view_interface span basic_syncbuf basic_osyncstream syncbuf wsyncbuf osyncstream wosyncstream jthread latch barrier stop_token stop_source stop_callback counting_semaphore binary_semaphore source_location compare_three_way_result contiguous_iterator_tag incrementable_traits indirectly_readable_traits move_sentinel common_iterator counted_iterator projected type_identity
syntax keyword cppSTLtypedef
\ common_comparison_category_t remove_cvref_t unwrap_reference_t unwrap_ref_decay_t common_reference_t iterator_t sentinel_t safe_iterator_t safe_subrange_t compare_three_way_result_t iter_value_t iter_reference_t iter_difference_t iter_rvalue_reference_t iter_common_reference_t default_sentinel_t unreachable_sentinel_t indirect_result_t type_identity_t
syntax keyword cppSTLfunction
\ make_unique_default_init make_shared_default_init allocate_shared_default_init uses_allocator_construction_args make_obj_using_allocator is_corresponding_member subspan in_range is_pointer_interconvertible_with_class
@@ -161,11 +178,13 @@ endif
hi def link cppSTLbool Boolean
hi def link cppStatement Statement
hi def link cppSTLfunction Function
hi def link cppSTLdefine Constant
hi def link cppSTLconstant Constant
hi def link cppSTLnamespace Constant
hi def link cppSTLtype Type
hi def link cppSTLexception Type
hi def link cppSTLiterator Typedef
hi def link cppSTLiterator Type
hi def link cppSTLtype Type
hi def link cppSTLtypedef Typedef
hi def link cppSTLenum Typedef
hi def link cppSTLios Function
hi def link cppSTLconcept Typedef

View File

@@ -36,7 +36,7 @@ let s:tags = '\%(' . join(graphql#javascript_tags(), '\|') . '\)'
if graphql#has_syntax_group('jsTemplateExpression')
" pangloss/vim-javascript
exec 'syntax region graphqlTemplateString start=+' . s:tags . '\@20<=`+ skip=+\\\\\|\\`+ end=+`+ contains=@GraphQLSyntax,jsTemplateExpression,jsSpecial extend'
exec 'syntax region graphqlTemplateString matchgroup=jsTemplateString start=+' . s:tags . '\@20<=`+ skip=+\\\\\|\\`+ end=+`+ contains=@GraphQLSyntax,jsTemplateExpression,jsSpecial extend'
exec 'syntax match graphqlTaggedTemplate +' . s:tags . '\ze`+ nextgroup=graphqlTemplateString'
syntax region graphqlTemplateExpression start=+${+ end=+}+ contained contains=jsTemplateExpression containedin=graphqlFold keepend
@@ -48,7 +48,7 @@ if graphql#has_syntax_group('jsTemplateExpression')
syn cluster graphqlTaggedTemplate add=graphqlTemplateString
elseif graphql#has_syntax_group('javaScriptStringT')
" runtime/syntax/javascript.vim
exec 'syntax region graphqlTemplateString start=+' . s:tags . '\@20<=`+ skip=+\\\\\|\\`+ end=+`+ contains=@GraphQLSyntax,javaScriptSpecial,javaScriptEmbed,@htmlPreproc extend'
exec 'syntax region graphqlTemplateString matchgroup=javaScriptStringT start=+' . s:tags . '\@20<=`+ skip=+\\\\\|\\`+ end=+`+ contains=@GraphQLSyntax,javaScriptSpecial,javaScriptEmbed,@htmlPreproc extend'
exec 'syntax match graphqlTaggedTemplate +' . s:tags . '\ze`+ nextgroup=graphqlTemplateString'
syntax region graphqlTemplateExpression start=+${+ end=+}+ contained contains=@javaScriptEmbededExpr containedin=graphqlFold keepend

View File

@@ -34,7 +34,7 @@ endif
let s:tags = '\%(' . join(graphql#javascript_tags(), '\|') . '\)'
exec 'syntax region graphqlTemplateString start=+' . s:tags . '\@20<=`+ skip=+\\`+ end=+`+ contains=@GraphQLSyntax,typescriptTemplateSubstitution extend'
exec 'syntax region graphqlTemplateString matchgroup=typescriptTemplate start=+' . s:tags . '\@20<=`+ skip=+\\`+ end=+`+ contains=@GraphQLSyntax,typescriptTemplateSubstitution extend'
exec 'syntax match graphqlTaggedTemplate +' . s:tags . '\ze`+ nextgroup=graphqlTemplateString'
" Support expression interpolation ((${...})) inside template strings.

View File

@@ -53,6 +53,8 @@ Text enclosed between `$anyword$` pairs, where `anyword` is any non-empty
sequence of word characters different from those with a special meaning (such
as `$pgsql$`) is treated as a multi-line string.
When |foldmethod| is set to "syntax", SQL commands can be folded.
Finally, the plugin supports syntax highlighting of arbitrary languages within
procedure and function blocks. This feature needs to be configured: see
|g:pgsql_pl|.

View File

@@ -162,8 +162,8 @@ if !has_key(s:disabled_packages, 'trasys')
endif
if !has_key(s:disabled_packages, 'zig')
au BufNewFile,BufRead *.zig,*.zir setf zig
au BufNewFile,BufRead *.zir setf zir
au BufNewFile,BufRead *.zig,*.zir setf zig
endif
if !has_key(s:disabled_packages, 'zephir')
@@ -225,13 +225,13 @@ if !has_key(s:disabled_packages, 'unison')
endif
if !has_key(s:disabled_packages, 'typescript')
au BufNewFile,BufRead *.tsx setf typescriptreact
au BufNewFile,BufRead *.ts setf typescript
au BufNewFile,BufRead *.tsx setf typescriptreact
endif
if !has_key(s:disabled_packages, 'twig')
au BufNewFile,BufRead *.xml.twig setf xml.twig
au BufNewFile,BufRead *.twig setf html.twig
au BufNewFile,BufRead *.xml.twig setf xml.twig
endif
if !has_key(s:disabled_packages, 'tptp')
@@ -271,9 +271,6 @@ if !has_key(s:disabled_packages, 'swift')
au BufNewFile,BufRead *.swift setf swift
endif
if !has_key(s:disabled_packages, 'svg-indent')
endif
if !has_key(s:disabled_packages, 'svg')
au BufNewFile,BufRead *.svg setf svg
endif
@@ -302,15 +299,12 @@ if !has_key(s:disabled_packages, 'slim')
au BufNewFile,BufRead *.slim setf slim
endif
if !has_key(s:disabled_packages, 'zinit')
endif
if !has_key(s:disabled_packages, 'sh')
au BufNewFile,BufRead *.bash,*.bats,*.cgi,*.command,*.env,*.fcgi,*.ksh,*.sh,*.sh.in,*.tmux,*.tool,*/etc/udev/cdsymlinks.conf,{.,}bash_aliases,{.,}bash_history,{.,}bash_logout,{.,}bash_profile,{.,}bashrc,{.,}cshrc,{.,}env,{.,}env.example,{.,}flaskenv,{.,}login,{.,}profile,9fs,PKGBUILD,bash_aliases,bash_logout,bash_profile,bashrc,cshrc,gradlew,login,man,profile,zlogin,zlogout,zprofile,zshenv,zshrc setf sh
au BufNewFile,BufRead *.zsh,{.,}zfbfmarks,{.,}zlogin,{.,}zlogout,{.,}zprofile,{.,}zshenv,{.,}zshrc setf zsh
au BufNewFile,BufRead {.,}zsh* call s:StarSetf('zsh')
au BufNewFile,BufRead {.,}zlog* call s:StarSetf('zsh')
au BufNewFile,BufRead {.,}zcompdump* call s:StarSetf('zsh')
au BufNewFile,BufRead *.bash,*.bats,*.cgi,*.command,*.env,*.fcgi,*.ksh,*.sh,*.sh.in,*.tmux,*.tool,*/etc/udev/cdsymlinks.conf,{.,}bash_aliases,{.,}bash_history,{.,}bash_logout,{.,}bash_profile,{.,}bashrc,{.,}cshrc,{.,}env,{.,}env.example,{.,}flaskenv,{.,}login,{.,}profile,9fs,PKGBUILD,bash_aliases,bash_logout,bash_profile,bashrc,cshrc,gradlew,login,man,profile,zlogin,zlogout,zprofile,zshenv,zshrc setf sh
endif
if !has_key(s:disabled_packages, 'scss')
@@ -333,17 +327,14 @@ if !has_key(s:disabled_packages, 'brewfile')
au BufNewFile,BufRead Brewfile setf brewfile
endif
if !has_key(s:disabled_packages, 'yard')
endif
if !has_key(s:disabled_packages, 'rspec')
au BufNewFile,BufRead *_spec.rb set ft=ruby syntax=rspec
endif
if !has_key(s:disabled_packages, 'ruby')
au BufNewFile,BufRead *.erb,*.erb.deface,*.rhtml setf eruby
au BufNewFile,BufRead *.axlsx,*.builder,*.cap,*.eye,*.fcgi,*.gemspec,*.god,*.jbuilder,*.mspec,*.opal,*.pluginspec,*.podspec,*.rabl,*.rake,*.rant,*.rb,*.rbi,*.rbuild,*.rbw,*.rbx,*.rjs,*.ru,*.ruby,*.rxml,*.spec,*.thor,*.watchr,{.,}Brewfile,{.,}Guardfile,{.,}autotest,{.,}irbrc,{.,}pryrc,{.,}simplecov,Appraisals,Berksfile,Buildfile,Capfile,Cheffile,Dangerfile,Deliverfile,Fastfile,Gemfile,Gemfile.lock,Guardfile,Jarfile,KitchenSink,Mavenfile,Podfile,Puppetfile,Rakefile,Rantfile,Routefile,Snapfile,Thorfile,Vagrantfile,buildfile,vagrantfile setf ruby
au BufNewFile,BufRead [Rr]akefile* call s:StarSetf('ruby')
au BufNewFile,BufRead *.erb,*.erb.deface,*.rhtml setf eruby
endif
if !has_key(s:disabled_packages, 'rst')
@@ -379,8 +370,8 @@ if !has_key(s:disabled_packages, 'racket')
endif
if !has_key(s:disabled_packages, 'r-lang')
au BufNewFile,BufRead *.rd setf rhelp
au BufNewFile,BufRead *.S,*.r,*.rsx,*.s,{.,}Rprofile,expr-dist setf r
au BufNewFile,BufRead *.rd setf rhelp
endif
if !has_key(s:disabled_packages, 'qml')
@@ -395,12 +386,6 @@ if !has_key(s:disabled_packages, 'requirements')
au BufNewFile,BufRead *.pip,*require.{txt,in},*requirements.{txt,in},constraints.{txt,in} setf requirements
endif
if !has_key(s:disabled_packages, 'python-compiler')
endif
if !has_key(s:disabled_packages, 'python-indent')
endif
if !has_key(s:disabled_packages, 'python')
au BufNewFile,BufRead *.cgi,*.fcgi,*.gyp,*.gypi,*.lmi,*.ptl,*.py,*.py3,*.pyde,*.pyi,*.pyp,*.pyt,*.pyw,*.rpy,*.smk,*.spec,*.tac,*.wsgi,*.xpy,{.,}gclient,{.,}pythonrc,{.,}pythonstartup,DEPS,SConscript,SConstruct,Snakefile,wscript setf python
endif
@@ -410,8 +395,8 @@ if !has_key(s:disabled_packages, 'purescript')
endif
if !has_key(s:disabled_packages, 'puppet')
au BufNewFile,BufRead *.epp setf embeddedpuppet
au BufNewFile,BufRead *.pp,Modulefile setf puppet
au BufNewFile,BufRead *.epp setf embeddedpuppet
endif
if !has_key(s:disabled_packages, 'pug')
@@ -423,8 +408,8 @@ if !has_key(s:disabled_packages, 'protobuf')
endif
if !has_key(s:disabled_packages, 'powershell')
au BufNewFile,BufRead *.ps1xml setf ps1xml
au BufNewFile,BufRead *.ps1,*.psd1,*.psm1,*.pssc setf ps1
au BufNewFile,BufRead *.ps1xml setf ps1xml
endif
if !has_key(s:disabled_packages, 'pony')
@@ -452,14 +437,15 @@ if !has_key(s:disabled_packages, 'pgsql')
endif
if !has_key(s:disabled_packages, 'perl')
au! BufNewFile,BufRead,BufWritePost *.tt2 call polyglot#detect#Tt2()
au! BufNewFile,BufRead,BufWritePost *.t call polyglot#detect#T()
au! BufNewFile,BufRead,BufWritePost *.pm call polyglot#detect#Pm()
au! BufNewFile,BufRead,BufWritePost *.pl call polyglot#detect#Pl()
au BufNewFile,BufRead *.xs setf xs
au BufNewFile,BufRead *.comp,*.mason,*.mhtml setf mason
au BufNewFile,BufRead *.pod setf pod
au BufNewFile,BufRead *.al,*.cgi,*.fcgi,*.perl,*.ph,*.plx,*.psgi,{.,}gitolite.rc,Makefile.PL,Rexfile,ack,cpanfile,example.gitolite.rc setf perl
au BufNewFile,BufRead *.pod setf pod
au BufNewFile,BufRead *.comp,*.mason,*.mhtml setf mason
au! BufNewFile,BufRead,BufWritePost *.tt2 call polyglot#detect#Tt2()
au! BufNewFile,BufRead,BufWritePost *.tt2 call polyglot#detect#Tt2()
au BufNewFile,BufRead *.xs setf xs
endif
if !has_key(s:disabled_packages, 'opencl')
@@ -472,15 +458,15 @@ if !has_key(s:disabled_packages, 'octave')
endif
if !has_key(s:disabled_packages, 'ocaml')
au BufNewFile,BufRead *.sexp setf sexplib
au BufNewFile,BufRead *.root setf ocpbuildroot
au BufNewFile,BufRead *.ocp setf ocpbuild
au BufNewFile,BufRead _tags setf ocamlbuild_tags
au BufNewFile,BufRead dune,dune-project,dune-workspace,jbuild setf dune
au BufNewFile,BufRead _oasis setf oasis
au BufNewFile,BufRead *.opam,*.opam.template,opam setf opam
au BufNewFile,BufRead *.om,OMakefile,OMakeroot,OMakeroot.in setf omake
au BufNewFile,BufRead *.eliom,*.eliomi,*.ml,*.ml.cppo,*.ml4,*.mli,*.mli.cppo,*.mlip,*.mll,*.mlp,*.mlt,*.mly,{.,}ocamlinit setf ocaml
au BufNewFile,BufRead *.om,OMakefile,OMakeroot,OMakeroot.in setf omake
au BufNewFile,BufRead *.opam,*.opam.template,opam setf opam
au BufNewFile,BufRead _oasis setf oasis
au BufNewFile,BufRead dune,dune-project,dune-workspace,jbuild setf dune
au BufNewFile,BufRead _tags setf ocamlbuild_tags
au BufNewFile,BufRead *.ocp setf ocpbuild
au BufNewFile,BufRead *.root setf ocpbuildroot
au BufNewFile,BufRead *.sexp setf sexplib
endif
if !has_key(s:disabled_packages, 'objc')
@@ -511,8 +497,8 @@ if !has_key(s:disabled_packages, 'moonscript')
endif
if !has_key(s:disabled_packages, 'meson')
au BufNewFile,BufRead *.wrap setf dosini
au BufNewFile,BufRead meson.build,meson_options.txt setf meson
au BufNewFile,BufRead *.wrap setf dosini
endif
if !has_key(s:disabled_packages, 'mdx')
@@ -549,8 +535,8 @@ if !has_key(s:disabled_packages, 'log')
endif
if !has_key(s:disabled_packages, 'llvm')
au BufNewFile,BufRead *.td setf tablegen
au BufNewFile,BufRead *.ll setf llvm
au BufNewFile,BufRead *.td setf tablegen
endif
if !has_key(s:disabled_packages, 'livescript')
@@ -607,17 +593,14 @@ if !has_key(s:disabled_packages, 'jenkins')
au BufNewFile,BufRead Jenkinsfile* call s:StarSetf('Jenkinsfile')
endif
if !has_key(s:disabled_packages, 'javascript-sql')
endif
if !has_key(s:disabled_packages, 'ion')
au BufNewFile,BufRead *.ion,~/.config/ion/initrc setf ion
endif
if !has_key(s:disabled_packages, 'idris2')
au! BufNewFile,BufRead,BufWritePost *.lidr call polyglot#detect#Lidr()
au! BufNewFile,BufRead,BufWritePost *.idr call polyglot#detect#Idr()
au BufNewFile,BufRead *.ipkg,idris-response setf idris2
au! BufNewFile,BufRead,BufWritePost *.lidr call polyglot#detect#Lidr()
endif
if !has_key(s:disabled_packages, 'idris')
@@ -656,8 +639,8 @@ if !has_key(s:disabled_packages, 'haskell')
endif
if !has_key(s:disabled_packages, 'handlebars')
au BufNewFile,BufRead *.handlebars,*.hb,*.hbs,*.hdbs setf html.handlebars
au BufNewFile,BufRead *.hjs,*.hogan,*.hulk,*.mustache setf html.mustache
au BufNewFile,BufRead *.handlebars,*.hb,*.hbs,*.hdbs setf html.handlebars
endif
if !has_key(s:disabled_packages, 'haml')
@@ -668,9 +651,6 @@ if !has_key(s:disabled_packages, 'grub')
au BufNewFile,BufRead */boot/grub/grub.conf,*/boot/grub/menu.lst,*/etc/grub.conf setf grub
endif
if !has_key(s:disabled_packages, 'gradle')
endif
if !has_key(s:disabled_packages, 'groovy')
au BufNewFile,BufRead *.gradle,*.groovy,*.grt,*.gtpl,*.gvy,Jenkinsfile setf groovy
endif
@@ -684,14 +664,14 @@ if !has_key(s:disabled_packages, 'jsx')
endif
if !has_key(s:disabled_packages, 'javascript')
au BufNewFile,BufRead *.flow setf flow
au BufNewFile,BufRead *._js,*.bones,*.cjs,*.es,*.es6,*.frag,*.gs,*.jake,*.javascript,*.js,*.jsb,*.jscad,*.jsfl,*.jsm,*.jss,*.mjs,*.njs,*.pac,*.sjs,*.ssjs,*.xsjs,*.xsjslib,Jakefile setf javascript
au BufNewFile,BufRead *.flow setf flow
endif
if !has_key(s:disabled_packages, 'go')
au BufNewFile,BufRead *.tmpl setf gohtmltmpl
au BufNewFile,BufRead go.mod setf gomod
au BufNewFile,BufRead *.go setf go
au BufNewFile,BufRead go.mod setf gomod
au BufNewFile,BufRead *.tmpl setf gohtmltmpl
endif
if !has_key(s:disabled_packages, 'gnuplot')
@@ -708,11 +688,11 @@ if !has_key(s:disabled_packages, 'glsl')
endif
if !has_key(s:disabled_packages, 'git')
au BufNewFile,BufRead COMMIT_EDITMSG,MERGE_MSG,TAG_EDITMSG setf gitcommit
au BufNewFile,BufRead {.,}gitsendemail.* call s:StarSetf('gitsendemail')
au BufNewFile,BufRead git-rebase-todo setf gitrebase
au BufNewFile,BufRead *.gitconfig,*.git/config,*.git/modules/*/config,*/.config/git/config,*/git/config,{.,}gitconfig,{.,}gitmodules setf gitconfig
au BufNewFile,BufRead */{.,}gitconfig.d/* call s:StarSetf('gitconfig')
au BufNewFile,BufRead git-rebase-todo setf gitrebase
au BufNewFile,BufRead {.,}gitsendemail.* call s:StarSetf('gitsendemail')
au BufNewFile,BufRead COMMIT_EDITMSG,MERGE_MSG,TAG_EDITMSG setf gitcommit
endif
if !has_key(s:disabled_packages, 'gdscript')
@@ -762,14 +742,14 @@ if !has_key(s:disabled_packages, 'elm')
endif
if !has_key(s:disabled_packages, 'elixir')
au BufNewFile,BufRead *.eex,*.leex setf eelixir
au BufNewFile,BufRead *.ex,*.exs,mix.lock setf elixir
au BufNewFile,BufRead *.eex,*.leex setf eelixir
endif
if !has_key(s:disabled_packages, 'dockerfile')
au BufNewFile,BufRead docker-compose*.yaml,docker-compose*.yml setf yaml.docker-compose
au BufNewFile,BufRead *.Dockerfile,*.dock,*.dockerfile,Dockerfile,dockerfile setf Dockerfile
au BufNewFile,BufRead Dockerfile* call s:StarSetf('Dockerfile')
au BufNewFile,BufRead docker-compose*.yaml,docker-compose*.yml setf yaml.docker-compose
endif
if !has_key(s:disabled_packages, 'yaml')
@@ -777,11 +757,11 @@ if !has_key(s:disabled_packages, 'yaml')
endif
if !has_key(s:disabled_packages, 'dlang')
au BufNewFile,BufRead *.sdl setf dsdl
au BufNewFile,BufRead *.ddoc setf ddoc
au BufNewFile,BufRead *.dd setf dd
au BufNewFile,BufRead *.lst setf dcov
au BufNewFile,BufRead *.d,*.di setf d
au BufNewFile,BufRead *.lst setf dcov
au BufNewFile,BufRead *.dd setf dd
au BufNewFile,BufRead *.ddoc setf ddoc
au BufNewFile,BufRead *.sdl setf dsdl
endif
if !has_key(s:disabled_packages, 'dhall')
@@ -801,20 +781,17 @@ if !has_key(s:disabled_packages, 'cucumber')
endif
if !has_key(s:disabled_packages, 'crystal')
au BufNewFile,BufRead *.ecr setf ecrystal
au BufNewFile,BufRead *.cr,Projectfile setf crystal
au BufNewFile,BufRead *.ecr setf ecrystal
endif
if !has_key(s:disabled_packages, 'cryptol')
au BufNewFile,BufRead *.cry,*.cyl,*.lcry,*.lcyl setf cryptol
endif
if !has_key(s:disabled_packages, 'cjsx')
endif
if !has_key(s:disabled_packages, 'coffee-script')
au BufNewFile,BufRead *.coffee.md,*.litcoffee setf litcoffee
au BufNewFile,BufRead *._coffee,*.cake,*.cjsx,*.coffee,*.coffeekup,*.iced,Cakefile setf coffee
au BufNewFile,BufRead *.coffee.md,*.litcoffee setf litcoffee
endif
if !has_key(s:disabled_packages, 'cmake')
@@ -829,9 +806,6 @@ if !has_key(s:disabled_packages, 'carp')
au BufNewFile,BufRead *.carp setf carp
endif
if !has_key(s:disabled_packages, 'cpp-modern')
endif
if !has_key(s:disabled_packages, 'caddyfile')
au BufNewFile,BufRead Caddyfile setf caddyfile
endif
@@ -891,8 +865,9 @@ endif
if !has_key(s:disabled_packages, 'c/c++')
au! BufNewFile,BufRead,BufWritePost *.h call polyglot#detect#H()
au BufNewFile,BufRead *.c,*.cats,*.idc,*.qc,*enlightenment/*.cfg setf c
au BufNewFile,BufRead *.c++,*.cc,*.cp,*.cpp,*.cxx,*.h++,*.hh,*.hpp,*.hxx,*.inc,*.inl,*.ipp,*.moc,*.tcc,*.tlh,*.tpp setf cpp
au! BufNewFile,BufRead,BufWritePost *.h call polyglot#detect#H()
au BufNewFile,BufRead *.c,*.cats,*.idc,*.qc,*enlightenment/*.cfg setf c
endif
if !has_key(s:disabled_packages, 'arch')
@@ -939,6 +914,7 @@ if !has_key(s:disabled_packages, 'csv')
endif
if !has_key(s:disabled_packages, 'ampl')
" AMPL
au BufNewFile,BufRead *.run setf ampl
endif
@@ -951,14 +927,17 @@ if !has_key(s:disabled_packages, 'alsaconf')
endif
if !has_key(s:disabled_packages, 'aidl')
" AIDL
au BufNewFile,BufRead *.aidl setf aidl
endif
if !has_key(s:disabled_packages, 'ahdl')
" AHDL
au BufNewFile,BufRead *.tdf setf ahdl
endif
if !has_key(s:disabled_packages, 'ada')
" Ada (83, 9X, 95)
au BufNewFile,BufRead *.ada,*.ada_m,*.adb,*.adc,*.ads,*.gpr setf ada
endif
@@ -967,14 +946,17 @@ if !has_key(s:disabled_packages, 'acpiasl')
endif
if !has_key(s:disabled_packages, 'acedb')
" AceDB
au BufNewFile,BufRead *.wrm setf acedb
endif
if !has_key(s:disabled_packages, 'abel')
" ABEL
au BufNewFile,BufRead *.abl setf abel
endif
if !has_key(s:disabled_packages, 'abc')
" ABC music notation
au BufNewFile,BufRead *.abc setf abc
endif
@@ -983,14 +965,17 @@ if !has_key(s:disabled_packages, 'abaqus')
endif
if !has_key(s:disabled_packages, 'abap')
" ABAB/4
au BufNewFile,BufRead *.abap setf abap
endif
if !has_key(s:disabled_packages, 'aap')
" A-A-P recipe
au BufNewFile,BufRead *.aap setf aap
endif
if !has_key(s:disabled_packages, 'a65')
" XA65 MOS6510 cross assembler
au BufNewFile,BufRead *.a65 setf a65
endif
@@ -1008,6 +993,7 @@ if !has_key(s:disabled_packages, 'conf')
endif
if !has_key(s:disabled_packages, '8th')
" 8th (Firth-derivative)
au BufNewFile,BufRead *.8th setf 8th
endif
@@ -1253,41 +1239,9 @@ au BufNewFile,BufRead $VIMRUNTIME/doc/*.txt setf help
" Abaqus or Trasys
au BufNewFile,BufRead *.inp call polyglot#ft#Check_inp()
" 8th (Firth-derivative)
au BufNewFile,BufRead *.8th setf 8th
" A-A-P recipe
au BufNewFile,BufRead *.aap setf aap
" A2ps printing utility
au BufNewFile,BufRead */etc/a2ps.cfg,*/etc/a2ps/*.cfg,a2psrc,.a2psrc setf a2ps
" ABAB/4
au BufNewFile,BufRead *.abap setf abap
" ABC music notation
au BufNewFile,BufRead *.abc setf abc
" ABEL
au BufNewFile,BufRead *.abl setf abel
" AceDB
au BufNewFile,BufRead *.wrm setf acedb
" Ada (83, 9X, 95)
au BufNewFile,BufRead *.adb,*.ads,*.ada setf ada
if has("vms")
au BufNewFile,BufRead *.gpr,*.ada_m,*.adc setf ada
else
au BufNewFile,BufRead *.gpr setf ada
endif
" AHDL
au BufNewFile,BufRead *.tdf setf ahdl
" AIDL
au BufNewFile,BufRead *.aidl setf aidl
" AMPL
au BufNewFile,BufRead *.run setf ampl

View File

@@ -62,6 +62,13 @@ function GetGraphQLIndent()
return 0
endif
" If the previous line isn't GraphQL, don't change this line's indentation.
" Assume we've been manually indented as part of a template string.
let l:stack = map(synstack(l:prevlnum, 1), "synIDattr(v:val, 'name')")
if get(l:stack, -1) !~# '^graphql'
return -1
endif
let l:line = getline(v:lnum)
" If this line contains just a closing bracket, find its matching opening

View File

@@ -4,6 +4,7 @@ remote: vim/vim:runtime
glob: '**/8th.vim'
filetypes:
- name: 8th
description: 8th (Firth-derivative)
extensions:
- 8th
---
@@ -23,6 +24,7 @@ remote: vim/vim:runtime
glob: '**/a65.vim'
filetypes:
- name: a65
description: XA65 MOS6510 cross assembler
extensions:
- a65
---
@@ -31,6 +33,7 @@ remote: vim/vim:runtime
glob: '**/aap.vim'
filetypes:
- name: aap
description: A-A-P recipe
extensions:
- aap
---
@@ -39,6 +42,7 @@ remote: vim/vim:runtime
glob: '**/abap.vim'
filetypes:
- name: abap
description: ABAB/4
extensions:
- abap
---
@@ -55,6 +59,7 @@ remote: vim/vim:runtime
glob: '**/abc.vim'
filetypes:
- name: abc
description: ABC music notation
extensions:
- abc
---
@@ -63,6 +68,7 @@ remote: vim/vim:runtime
glob: '**/abel.vim'
filetypes:
- name: abel
description: ABEL
extensions:
- abl
---
@@ -71,6 +77,7 @@ remote: vim/vim:runtime
glob: '**/acedb.vim'
filetypes:
- name: acedb
description: AceDB
extensions:
- wrm
---
@@ -87,6 +94,7 @@ remote: vim/vim:runtime
glob: '**/ada.vim'
filetypes:
- name: ada
description: Ada (83, 9X, 95)
extensions:
- adb
- ads
@@ -100,6 +108,7 @@ remote: vim/vim:runtime
glob: '**/ahdl.vim'
filetypes:
- name: ahdl
description: AHDL
extensions:
- tdf
---
@@ -108,6 +117,7 @@ remote: vim/vim:runtime
glob: '**/aidl.vim'
filetypes:
- name: aidl
description: AIDL
extensions:
- aidl
---
@@ -134,6 +144,7 @@ remote: vim/vim:runtime
glob: '**/ampl.vim'
filetypes:
- name: ampl
description: AMPL
extensions:
- run
---

View File

@@ -43,6 +43,18 @@ def verify(packages, heuristics)
puts "No heuristics for .#{e} extension (#{names.join(", ")})"
end
end
extensions = packages.flat_map { |e| e["filetypes"] || [] }
.flat_map { |e| e["extensions"].map { |e| "*." + e } }
native_filetypes = detect_filetypes_str(
File.read('ftdetect/polyglot.vim').match(/" DO NOT EDIT CODE ABOVE.*/m)[0]
).flat_map { |e| expand_all(e) }
for e in (native_filetypes & extensions)
if ENV["DEV"]
puts "Duplicated handling for #{e}"
end
end
end
def sort_packages(packages)
@@ -506,10 +518,12 @@ def generate_ftdetect(packages, heuristics)
for package in packages.reverse
filetypes = package["filetypes"] or raise "Unknown filetype for: #{package["name"]}"
package_heuristics = []
package_autocommands = []
autocommands = []
for filetype in filetypes
autocommands = []
filetype_heuristics = []
name = filetype.fetch("name")
syntax = filetype["syntax"] ? " | set syntax=#{filetype["syntax"]}" : ""
@@ -531,13 +545,13 @@ def generate_ftdetect(packages, heuristics)
for extension in extensions.sort
outer_filetype = filetype["outer_filetype"]
if outer_filetype
autocommands << " au BufNewFile *.*.#{extension} execute \"do BufNewFile filetypedetect \" . expand(\"<afile>:r\") | #{outer_filetype}\n"
autocommands << " au BufReadPre *.*.#{extension} execute \"do BufRead filetypedetect \" . expand(\"<afile>:r\") | #{outer_filetype}\n"
autocommands << "au BufNewFile *.*.#{extension} execute \"do BufNewFile filetypedetect \" . expand(\"<afile>:r\") | #{outer_filetype}"
autocommands << "au BufReadPre *.*.#{extension} execute \"do BufRead filetypedetect \" . expand(\"<afile>:r\") | #{outer_filetype}"
end
heuristic = heuristics.find { |h| h["extensions"].include?(extension) }
if heuristic
package_heuristics << heuristic
filetype_heuristics << heuristic
else
set_globs << "*." + extension
end
@@ -548,28 +562,34 @@ def generate_ftdetect(packages, heuristics)
filename = "{.,}" + filename[1..-1]
end
if filename[-1] == "*"
autocommands << " au BufNewFile,BufRead #{filename} call s:StarSetf('#{name}')\n"
autocommands << "au BufNewFile,BufRead #{filename} call s:StarSetf('#{name}')"
else
set_globs << filename
end
end
if set_globs.size > 0
autocommands << " au BufNewFile,BufRead #{set_globs.join(",")} #{set_command}\n"
autocommands << "au BufNewFile,BufRead #{set_globs.join(",")} #{set_command}"
end
for heuristic in filetype_heuristics.uniq
extensions = heuristic["extensions"].map { |e| "*.#{e}" }
autocommands << "au! BufNewFile,BufRead,BufWritePost #{extensions.join(",")} call polyglot#detect##{camelize(heuristic["extensions"].first)}()"
end
if autocommands.size > 0 && filetype["description"]
autocommands << '" ' + filetype["description"]
end
package_autocommands << autocommands
end
for heuristic in package_heuristics.uniq
extensions = heuristic["extensions"].map { |e| "*.#{e}" }
autocommands << " au! BufNewFile,BufRead,BufWritePost #{extensions.join(",")} call polyglot#detect##{camelize(heuristic["extensions"].first)}()\n"
end
if autocommands != ""
if package_autocommands.flatten.size > 0
output << "if !has_key(s:disabled_packages, '#{package["name"]}')\n"
output << autocommands.reverse.join("")
output << "endif\n\n"
output << indent(package_autocommands.map { |pc| pc.reverse.join("\n") }.join("\n\n"), 2)
output << "\nendif\n\n"
end
end
show_warnings(all_filetypes, expected_filetypes)
@@ -701,21 +721,23 @@ def expand_all(pattern, all = false)
end
end
def detect_filetypes_str(contents)
contents = contents.gsub(/^\s*au(tocmd)?!?\s*$/, '')
results = contents.scan(/^\s*(?:au!|au|au[^g][^ ]*) +(?:\S+)\s+(\S+)[\s\\]+([^\n]+)/)
results = results.map do |a, b|
[
a,
b.gsub(/call (?:s:setf|s:StarSetf)\('([^']+)'\)/i, 'setf \1')
.gsub(/set(?:local)?\s+(?:ft|filetype)=(\S+)/, 'setf \1')
.gsub(/setf\S*/, 'setf')
.gsub(/.*setf\s+(\S+).*/, 'setf \1')
]
end.select { |a, b| b.match(/setf \S+/) }.map { |a, b| [a, b.split(" ")[1]] }
results
end
def detect_filetypes(glob)
filetypes = Dir[glob].flat_map do |file|
contents = File.read(file).gsub(/^\s*au(tocmd)?!?\s*$/, '')
results = contents.scan(/^\s*(?:au!|au|au[^g][^ ]*) +(?:\S+)\s+(\S+)[\s\\]+([^\n]+)/)
results = results.map do |a, b|
[
a,
b.gsub(/call (?:s:setf|s:StarSetf)\('([^']+)'\)/i, 'setf \1')
.gsub(/set(?:local)?\s+(?:ft|filetype)=(\S+)/, 'setf \1')
.gsub(/setf\S*/, 'setf')
.gsub(/.*setf\s+(\S+).*/, 'setf \1')
]
end.select { |a, b| b.match(/setf \S+/) }.map { |a, b| [a, b.split(" ")[1]] }
results
end
filetypes = Dir[glob].flat_map { |file| detect_filetypes_str(File.read(file)) }
filetypes.flat_map do |ext, filetype|
expand_all(ext).map { |e| [filetype, e] }

View File

@@ -6,8 +6,8 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'pgsql') == -1
" Version: 2.2.2
" License: This file is placed in the public domain.
" Based on PostgreSQL 12.3
" Automatically generated on 2020-07-31 at 10:47:30
" Based on PostgreSQL 12.4
" Automatically generated on 2020-10-03 at 18:36:49
if exists("b:current_syntax")
finish
@@ -25,12 +25,12 @@ syn keyword sqlSpecial contained false null true
" Statements
syn keyword sqlStatement contained abort add alter analyze begin checkpoint close cluster comment
syn keyword sqlStatement contained commit constraints copy create deallocate declare delete discard do drop
syn keyword sqlStatement contained end execute explain fetch grant import insert label listen load lock
syn keyword sqlStatement contained move notify prepare prepared reassign refresh reindex release reset
syn keyword sqlStatement contained revoke rollback savepoint security select select set show start
syn keyword sqlStatement contained transaction truncate unlisten update vacuum values work
syn match sqlStatement /\<create\_s\+or\_s\+replace\>/
syn keyword sqlStatement contained commit constraints copy deallocate declare delete discard do drop end
syn keyword sqlStatement contained execute explain fetch grant import insert label listen load lock move
syn keyword sqlStatement contained notify prepare prepared reassign refresh reindex release reset revoke
syn keyword sqlStatement contained rollback savepoint security select select set show start transaction
syn keyword sqlStatement contained truncate unlisten update vacuum values work
syn match sqlStatement contained /\<create\%(\_s\+or\_s\+replace\)\=\>/
" Types
syn keyword sqlType contained aclitem addbandarg addr addr_gid_seq addrfeat addrfeat_gid_seq
syn keyword sqlType contained agg_count agg_samealignment anyarray anyelement anyenum
@@ -702,7 +702,7 @@ syn keyword sqlConstant contained ltree_plpythonu pldbgapi plpython2u plpython3u
if index(get(g:, 'pgsql_disabled_extensions', []), 'refint') == -1
syn keyword sqlFunction contained check_foreign_key check_primary_key
endif " refint
" Extension: postgis (v3.0.1)
" Extension: postgis (v3.0.2)
if index(get(g:, 'pgsql_disabled_extensions', []), 'postgis') == -1
syn keyword sqlFunction contained addauth addgeometrycolumn box
syn keyword sqlFunction contained box2d box2d_in box2d_out box2df_in
@@ -988,7 +988,7 @@ endif " adminpack
if index(get(g:, 'pgsql_disabled_extensions', []), 'dict_xsyn') == -1
syn keyword sqlFunction contained dxsyn_init dxsyn_lexize
endif " dict_xsyn
" Extension: address_standardizer (v3.0.1)
" Extension: address_standardizer (v3.0.2)
if index(get(g:, 'pgsql_disabled_extensions', []), 'address_standardizer') == -1
syn keyword sqlFunction contained parse_address standardize_address
syn keyword sqlType contained stdaddr
@@ -1046,7 +1046,7 @@ if index(get(g:, 'pgsql_disabled_extensions', []), 'cube') == -1
syn keyword sqlType contained cube
syn keyword sqlFunction contained g_cube_compress g_cube_decompress
endif " cube
" Extension: postgis_tiger_geocoder (v3.0.1)
" Extension: postgis_tiger_geocoder (v3.0.2)
if index(get(g:, 'pgsql_disabled_extensions', []), 'postgis_tiger_geocoder') == -1
syn keyword sqlFunction contained count_words create_census_base_tables
syn keyword sqlFunction contained cull_null diff_zip
@@ -1150,11 +1150,11 @@ endif " pgstattuple
if index(get(g:, 'pgsql_disabled_extensions', []), 'autoinc') == -1
syn keyword sqlFunction contained autoinc
endif " autoinc
" Extension: address_standardizer_data_us (v3.0.1)
" Extension: address_standardizer_data_us (v3.0.2)
if index(get(g:, 'pgsql_disabled_extensions', []), 'address_standardizer_data_us') == -1
syn keyword sqlTable contained us_gaz us_lex us_rules
endif " address_standardizer_data_us
" Extension: postgis_topology (v3.0.1)
" Extension: postgis_topology (v3.0.2)
if index(get(g:, 'pgsql_disabled_extensions', []), 'postgis_topology') == -1
syn keyword sqlFunction contained addedge addface addnode
syn keyword sqlFunction contained addtopogeometrycolumn addtosearchpath asgml
@@ -1187,7 +1187,7 @@ if index(get(g:, 'pgsql_disabled_extensions', []), 'postgis_topology') == -1
syn keyword sqlType contained topoelementarray topogeometry
syn keyword sqlType contained validatetopology_returntype
endif " postgis_topology
" Extension: postgis_raster (v3.0.1)
" Extension: postgis_raster (v3.0.2)
if index(get(g:, 'pgsql_disabled_extensions', []), 'postgis_raster') == -1
syn keyword sqlFunction contained addoverviewconstraints addrasterconstraints
syn keyword sqlFunction contained box3d bytea dropoverviewconstraints
@@ -1534,7 +1534,7 @@ if index(get(g:, 'pgsql_disabled_extensions', []), 'fuzzystrmatch') == -1
syn keyword sqlFunction contained levenshtein levenshtein_less_equal
syn keyword sqlFunction contained metaphone soundex text_soundex
endif " fuzzystrmatch
" Extension: pgrouting (v3.0.2)
" Extension: pgrouting (v3.1.0)
if index(get(g:, 'pgsql_disabled_extensions', []), 'pgrouting') == -1
syn keyword sqlFunction contained pgr_alphashape pgr_analyzegraph
syn keyword sqlFunction contained pgr_analyzeoneway pgr_articulationpoints pgr_astar
@@ -1578,7 +1578,7 @@ if index(get(g:, 'pgsql_disabled_extensions', []), 'pgcrypto') == -1
syn keyword sqlFunction contained pgp_sym_decrypt_bytea pgp_sym_encrypt
syn keyword sqlFunction contained pgp_sym_encrypt_bytea
endif " pgcrypto
" Extension: postgis_sfcgal (v3.0.1)
" Extension: postgis_sfcgal (v3.0.2)
if index(get(g:, 'pgsql_disabled_extensions', []), 'postgis_sfcgal') == -1
syn keyword sqlFunction contained postgis_sfcgal_noop
syn keyword sqlFunction contained postgis_sfcgal_scripts_installed postgis_sfcgal_version st_3darea
@@ -1972,6 +1972,9 @@ else
\ contains=sqlIsKeyword,sqlIsFunction,sqlComment,sqlPlpgsqlKeyword,sqlPlpgsqlVariable,sqlPlpgsqlOperator,sqlNumber,sqlIsOperator,sqlString,sqlTodo
endif
" Folding
syn region sqlFold start='^\s*\zs\c\(create\|update\|alter\|select\|insert\|do\)\>' end=';$' transparent fold contains=ALL
" PL/<any other language>
fun! s:add_syntax(s)
execute 'syn include @PL' . a:s . ' syntax/' . a:s . '.vim'