rouge 0.2.9 → 0.2.10
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/rouge.rb +1 -0
- data/lib/rouge/demos/rust +12 -0
- data/lib/rouge/lexer.rb +1 -0
- data/lib/rouge/lexers/php/builtins.rb +6 -4
- data/lib/rouge/lexers/rust.rb +146 -0
- data/lib/rouge/lexers/session.rb +47 -0
- data/lib/rouge/lexers/viml/keywords.rb +1 -1
- data/lib/rouge/plugins/redcarpet.rb +0 -3
- data/lib/rouge/version.rb +1 -1
- data/rouge.gemspec +19 -0
- metadata +6 -2
data/lib/rouge.rb
CHANGED
@@ -83,6 +83,7 @@ load load_dir.join('rouge/lexers/common_lisp.rb')
|
|
83
83
|
load load_dir.join('rouge/lexers/c.rb')
|
84
84
|
load load_dir.join('rouge/lexers/cpp.rb')
|
85
85
|
load load_dir.join('rouge/lexers/java.rb')
|
86
|
+
load load_dir.join('rouge/lexers/rust.rb')
|
86
87
|
|
87
88
|
load load_dir.join('rouge/lexers/smalltalk.rb')
|
88
89
|
|
data/lib/rouge/lexer.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# automatically generated by `rake
|
1
|
+
# automatically generated by `rake builtins:php`
|
2
2
|
module Rouge
|
3
3
|
module Lexers
|
4
4
|
class PHP
|
@@ -98,7 +98,8 @@ module Rouge
|
|
98
98
|
b["mSQL"] = Set.new %w(msql_affected_rows msql_affected_rows msql_close msql_connect msql_create_db msql_createdb msql_data_seek msql_db_query msql_dbname msql_drop_db msql_error msql_fetch_array msql_fetch_field msql_fetch_object msql_fetch_row msql_field_flags msql_field_len msql_field_name msql_field_seek msql_field_table msql_field_type msql_fieldflags msql_fieldlen msql_fieldname msql_fieldtable msql_fieldtype msql_free_result msql_list_dbs msql_list_fields msql_list_tables msql_num_fields msql_num_rows msql_numfields msql_numrows msql_pconnect msql_query msql_regcase msql_result msql_select_db msql_tablename msql msql_affected_rows)
|
99
99
|
b["Mssql"] = Set.new %w(mssql_bind mssql_bind mssql_close mssql_connect mssql_data_seek mssql_execute mssql_fetch_array mssql_fetch_assoc mssql_fetch_batch mssql_fetch_field mssql_fetch_object mssql_fetch_row mssql_field_length mssql_field_name mssql_field_seek mssql_field_type mssql_free_result mssql_free_statement mssql_get_last_message mssql_guid_string mssql_init mssql_min_error_severity mssql_min_message_severity mssql_next_result mssql_num_fields mssql_num_rows mssql_pconnect mssql_query mssql_result mssql_rows_affected mssql_select_db mssql_bind)
|
100
100
|
b["MySQL"] = Set.new %w(mysql_affected_rows mysql_affected_rows mysql_client_encoding mysql_close mysql_connect mysql_create_db mysql_data_seek mysql_db_name mysql_db_query mysql_drop_db mysql_errno mysql_error mysql_escape_string mysql_fetch_array mysql_fetch_assoc mysql_fetch_field mysql_fetch_lengths mysql_fetch_object mysql_fetch_row mysql_field_flags mysql_field_len mysql_field_name mysql_field_seek mysql_field_table mysql_field_type mysql_free_result mysql_get_client_info mysql_get_host_info mysql_get_proto_info mysql_get_server_info mysql_info mysql_insert_id mysql_list_dbs mysql_list_fields mysql_list_processes mysql_list_tables mysql_num_fields mysql_num_rows mysql_pconnect mysql_ping mysql_query mysql_real_escape_string mysql_result mysql_select_db mysql_set_charset mysql_stat mysql_tablename mysql_thread_id mysql_unbuffered_query mysql_affected_rows)
|
101
|
-
b["Aliases and deprecated Mysqli"] = Set.new %w(mysqli_bind_param mysqli_bind_param mysqli_bind_result mysqli_client_encoding mysqli_connect mysqli_disable_rpl_parse mysqli_enable_reads_from_master mysqli_enable_rpl_parse mysqli_escape_string mysqli_execute mysqli_fetch mysqli_get_cache_stats mysqli_get_metadata mysqli_master_query mysqli_param_count mysqli_report mysqli_rpl_parse_enabled mysqli_rpl_probe mysqli_send_long_data mysqli_set_opt mysqli_slave_query mysqli_bind_param)
|
101
|
+
b["Aliases and deprecated Mysqli"] = Set.new %w(mysqli_bind_param mysqli_bind_param mysqli_bind_result mysqli_client_encoding mysqli_connect mysqli::disable_reads_from_master mysqli_disable_rpl_parse mysqli_enable_reads_from_master mysqli_enable_rpl_parse mysqli_escape_string mysqli_execute mysqli_fetch mysqli_get_cache_stats mysqli_get_metadata mysqli_master_query mysqli_param_count mysqli_report mysqli_rpl_parse_enabled mysqli_rpl_probe mysqli_send_long_data mysqli_set_opt mysqli_slave_query mysqli_bind_param)
|
102
|
+
b["Mysqlnd_memcache"] = Set.new %w(mysqlnd_memcache_get_config mysqlnd_memcache_get_config mysqlnd_memcache_set mysqlnd_memcache_get_config)
|
102
103
|
b["Mysqlnd_ms"] = Set.new %w(mysqlnd_ms_get_last_gtid mysqlnd_ms_get_last_gtid mysqlnd_ms_get_last_used_connection mysqlnd_ms_get_stats mysqlnd_ms_match_wild mysqlnd_ms_query_is_select mysqlnd_ms_set_qos mysqlnd_ms_set_user_pick_server mysqlnd_ms_get_last_gtid)
|
103
104
|
b["mysqlnd_qc"] = Set.new %w(mysqlnd_qc_clear_cache mysqlnd_qc_clear_cache mysqlnd_qc_get_available_handlers mysqlnd_qc_get_cache_info mysqlnd_qc_get_core_stats mysqlnd_qc_get_normalized_query_trace_log mysqlnd_qc_get_query_trace_log mysqlnd_qc_set_cache_condition mysqlnd_qc_set_is_select mysqlnd_qc_set_storage_handler mysqlnd_qc_set_user_handlers mysqlnd_qc_clear_cache)
|
104
105
|
b["Mysqlnd_uh"] = Set.new %w(mysqlnd_uh_convert_to_mysqlnd mysqlnd_uh_convert_to_mysqlnd mysqlnd_uh_set_connection_proxy mysqlnd_uh_set_statement_proxy mysqlnd_uh_convert_to_mysqlnd)
|
@@ -118,6 +119,7 @@ module Rouge
|
|
118
119
|
b["Ovrimos SQL"] = Set.new %w(ovrimos_close ovrimos_close ovrimos_commit ovrimos_connect ovrimos_cursor ovrimos_exec ovrimos_execute ovrimos_fetch_into ovrimos_fetch_row ovrimos_field_len ovrimos_field_name ovrimos_field_num ovrimos_field_type ovrimos_free_result ovrimos_longreadlen ovrimos_num_fields ovrimos_num_rows ovrimos_prepare ovrimos_result_all ovrimos_result ovrimos_rollback ovrimos_close)
|
119
120
|
b["Paradox"] = Set.new %w(px_close px_close px_create_fp px_date2string px_delete_record px_delete px_get_field px_get_info px_get_parameter px_get_record px_get_schema px_get_value px_insert_record px_new px_numfields px_numrecords px_open_fp px_put_record px_retrieve_record px_set_blob_file px_set_parameter px_set_tablename px_set_targetencoding px_set_value px_timestamp2string px_update_record px_close)
|
120
121
|
b["Parsekit"] = Set.new %w(parsekit_compile_file parsekit_compile_file parsekit_compile_string parsekit_func_arginfo parsekit_compile_file)
|
122
|
+
b["Password Hashing"] = Set.new %w(password_get_info password_get_info password_hash password_needs_rehash password_verify password_get_info)
|
121
123
|
b["PCNTL"] = Set.new %w(pcntl_alarm pcntl_alarm pcntl_exec pcntl_fork pcntl_getpriority pcntl_setpriority pcntl_signal_dispatch pcntl_signal pcntl_sigprocmask pcntl_sigtimedwait pcntl_sigwaitinfo pcntl_wait pcntl_waitpid pcntl_wexitstatus pcntl_wifexited pcntl_wifsignaled pcntl_wifstopped pcntl_wstopsig pcntl_wtermsig pcntl_alarm)
|
122
124
|
b["PCRE"] = Set.new %w(preg_filter preg_filter preg_grep preg_last_error preg_match_all preg_match preg_quote preg_replace_callback preg_replace preg_split preg_filter)
|
123
125
|
b["PDF"] = Set.new %w(PDF_activate_item PDF_activate_item PDF_add_annotation PDF_add_bookmark PDF_add_launchlink PDF_add_locallink PDF_add_nameddest PDF_add_note PDF_add_outline PDF_add_pdflink PDF_add_table_cell PDF_add_textflow PDF_add_thumbnail PDF_add_weblink PDF_arc PDF_arcn PDF_attach_file PDF_begin_document PDF_begin_font PDF_begin_glyph PDF_begin_item PDF_begin_layer PDF_begin_page_ext PDF_begin_page PDF_begin_pattern PDF_begin_template_ext PDF_begin_template PDF_circle PDF_clip PDF_close_image PDF_close_pdi_page PDF_close_pdi PDF_close PDF_closepath_fill_stroke PDF_closepath_stroke PDF_closepath PDF_concat PDF_continue_text PDF_create_3dview PDF_create_action PDF_create_annotation PDF_create_bookmark PDF_create_field PDF_create_fieldgroup PDF_create_gstate PDF_create_pvf PDF_create_textflow PDF_curveto PDF_define_layer PDF_delete_pvf PDF_delete_table PDF_delete_textflow PDF_delete PDF_encoding_set_char PDF_end_document PDF_end_font PDF_end_glyph PDF_end_item PDF_end_layer PDF_end_page_ext PDF_end_page PDF_end_pattern PDF_end_template PDF_endpath PDF_fill_imageblock PDF_fill_pdfblock PDF_fill_stroke PDF_fill_textblock PDF_fill PDF_findfont PDF_fit_image PDF_fit_pdi_page PDF_fit_table PDF_fit_textflow PDF_fit_textline PDF_get_apiname PDF_get_buffer PDF_get_errmsg PDF_get_errnum PDF_get_font PDF_get_fontname PDF_get_fontsize PDF_get_image_height PDF_get_image_width PDF_get_majorversion PDF_get_minorversion PDF_get_parameter PDF_get_pdi_parameter PDF_get_pdi_value PDF_get_value PDF_info_font PDF_info_matchbox PDF_info_table PDF_info_textflow PDF_info_textline PDF_initgraphics PDF_lineto PDF_load_3ddata PDF_load_font PDF_load_iccprofile PDF_load_image PDF_makespotcolor PDF_moveto PDF_new PDF_open_ccitt PDF_open_file PDF_open_gif PDF_open_image_file PDF_open_image PDF_open_jpeg PDF_open_memory_image PDF_open_pdi_document PDF_open_pdi_page PDF_open_pdi PDF_open_tiff PDF_pcos_get_number PDF_pcos_get_stream PDF_pcos_get_string PDF_place_image PDF_place_pdi_page PDF_process_pdi PDF_rect PDF_restore PDF_resume_page PDF_rotate PDF_save PDF_scale PDF_set_border_color PDF_set_border_dash PDF_set_border_style PDF_set_char_spacing PDF_set_duration PDF_set_gstate PDF_set_horiz_scaling PDF_set_info_author PDF_set_info_creator PDF_set_info_keywords PDF_set_info_subject PDF_set_info_title PDF_set_info PDF_set_layer_dependency PDF_set_leading PDF_set_parameter PDF_set_text_matrix PDF_set_text_pos PDF_set_text_rendering PDF_set_text_rise PDF_set_value PDF_set_word_spacing PDF_setcolor PDF_setdash PDF_setdashpattern PDF_setflat PDF_setfont PDF_setgray_fill PDF_setgray_stroke PDF_setgray PDF_setlinecap PDF_setlinejoin PDF_setlinewidth PDF_setmatrix PDF_setmiterlimit PDF_setpolydash PDF_setrgbcolor_fill PDF_setrgbcolor_stroke PDF_setrgbcolor PDF_shading_pattern PDF_shading PDF_shfill PDF_show_boxed PDF_show_xy PDF_show PDF_skew PDF_stringwidth PDF_stroke PDF_suspend_page PDF_translate PDF_utf16_to_utf8 PDF_utf32_to_utf16 PDF_utf8_to_utf16 PDF_activate_item)
|
@@ -155,7 +157,7 @@ module Rouge
|
|
155
157
|
b["SQLite"] = Set.new %w(sqlite_array_query sqlite_array_query sqlite_busy_timeout sqlite_changes sqlite_close sqlite_column sqlite_create_aggregate sqlite_create_function sqlite_current sqlite_error_string sqlite_escape_string sqlite_exec sqlite_factory sqlite_fetch_all sqlite_fetch_array sqlite_fetch_column_types sqlite_fetch_object sqlite_fetch_single sqlite_fetch_string sqlite_field_name sqlite_has_more sqlite_has_prev sqlite_key sqlite_last_error sqlite_last_insert_rowid sqlite_libencoding sqlite_libversion sqlite_next sqlite_num_fields sqlite_num_rows sqlite_open sqlite_popen sqlite_prev sqlite_query sqlite_rewind sqlite_seek sqlite_single_query sqlite_udf_decode_binary sqlite_udf_encode_binary sqlite_unbuffered_query sqlite_valid sqlite_array_query)
|
156
158
|
b["SQLSRV"] = Set.new %w(sqlsrv_begin_transaction sqlsrv_begin_transaction sqlsrv_cancel sqlsrv_client_info sqlsrv_close sqlsrv_commit sqlsrv_configure sqlsrv_connect sqlsrv_errors sqlsrv_execute sqlsrv_fetch_array sqlsrv_fetch_object sqlsrv_fetch sqlsrv_field_metadata sqlsrv_free_stmt sqlsrv_get_config sqlsrv_get_field sqlsrv_has_rows sqlsrv_next_result sqlsrv_num_fields sqlsrv_num_rows sqlsrv_prepare sqlsrv_query sqlsrv_rollback sqlsrv_rows_affected sqlsrv_send_stream_data sqlsrv_server_info sqlsrv_begin_transaction)
|
157
159
|
b["ssdeep"] = Set.new %w(ssdeep_fuzzy_compare ssdeep_fuzzy_compare ssdeep_fuzzy_hash_filename ssdeep_fuzzy_hash ssdeep_fuzzy_compare)
|
158
|
-
b["SSH2"] = Set.new %w(
|
160
|
+
b["SSH2"] = Set.new %w(ssh2_auth_agent ssh2_auth_agent ssh2_auth_hostbased_file ssh2_auth_none ssh2_auth_password ssh2_auth_pubkey_file ssh2_connect ssh2_exec ssh2_fetch_stream ssh2_fingerprint ssh2_methods_negotiated ssh2_publickey_add ssh2_publickey_init ssh2_publickey_list ssh2_publickey_remove ssh2_scp_recv ssh2_scp_send ssh2_sftp_chmod ssh2_sftp_lstat ssh2_sftp_mkdir ssh2_sftp_readlink ssh2_sftp_realpath ssh2_sftp_rename ssh2_sftp_rmdir ssh2_sftp_stat ssh2_sftp_symlink ssh2_sftp_unlink ssh2_sftp ssh2_shell ssh2_tunnel ssh2_auth_agent)
|
159
161
|
b["Statistic"] = Set.new %w(stats_absolute_deviation stats_absolute_deviation stats_cdf_beta stats_cdf_binomial stats_cdf_cauchy stats_cdf_chisquare stats_cdf_exponential stats_cdf_f stats_cdf_gamma stats_cdf_laplace stats_cdf_logistic stats_cdf_negative_binomial stats_cdf_noncentral_chisquare stats_cdf_noncentral_f stats_cdf_poisson stats_cdf_t stats_cdf_uniform stats_cdf_weibull stats_covariance stats_den_uniform stats_dens_beta stats_dens_cauchy stats_dens_chisquare stats_dens_exponential stats_dens_f stats_dens_gamma stats_dens_laplace stats_dens_logistic stats_dens_negative_binomial stats_dens_normal stats_dens_pmf_binomial stats_dens_pmf_hypergeometric stats_dens_pmf_poisson stats_dens_t stats_dens_weibull stats_harmonic_mean stats_kurtosis stats_rand_gen_beta stats_rand_gen_chisquare stats_rand_gen_exponential stats_rand_gen_f stats_rand_gen_funiform stats_rand_gen_gamma stats_rand_gen_ibinomial_negative stats_rand_gen_ibinomial stats_rand_gen_int stats_rand_gen_ipoisson stats_rand_gen_iuniform stats_rand_gen_noncenral_chisquare stats_rand_gen_noncentral_f stats_rand_gen_noncentral_t stats_rand_gen_normal stats_rand_gen_t stats_rand_get_seeds stats_rand_phrase_to_seeds stats_rand_ranf stats_rand_setall stats_skew stats_standard_deviation stats_stat_binomial_coef stats_stat_correlation stats_stat_gennch stats_stat_independent_t stats_stat_innerproduct stats_stat_noncentral_t stats_stat_paired_t stats_stat_percentile stats_stat_powersum stats_variance stats_absolute_deviation)
|
160
162
|
b["Stomp"] = Set.new %w(stomp_connect_error stomp_connect_error stomp_version stomp_connect_error)
|
161
163
|
b["Stream"] = Set.new %w(set_socket_blocking set_socket_blocking stream_bucket_append stream_bucket_make_writeable stream_bucket_new stream_bucket_prepend stream_context_create stream_context_get_default stream_context_get_options stream_context_get_params stream_context_set_default stream_context_set_option stream_context_set_params stream_copy_to_stream stream_encoding stream_filter_append stream_filter_prepend stream_filter_register stream_filter_remove stream_get_contents stream_get_filters stream_get_line stream_get_meta_data stream_get_transports stream_get_wrappers stream_is_local stream_notification_callback stream_register_wrapper stream_resolve_include_path stream_select stream_set_blocking stream_set_chunk_size stream_set_read_buffer stream_set_timeout stream_set_write_buffer stream_socket_accept stream_socket_client stream_socket_enable_crypto stream_socket_get_name stream_socket_pair stream_socket_recvfrom stream_socket_sendto stream_socket_server stream_socket_shutdown stream_supports_lock stream_wrapper_register stream_wrapper_restore stream_wrapper_unregister set_socket_blocking)
|
@@ -171,7 +173,7 @@ module Rouge
|
|
171
173
|
b["Trader"] = Set.new %w(trader_acos trader_acos trader_ad trader_add trader_adosc trader_adx trader_adxr trader_apo trader_aroon trader_aroonosc trader_asin trader_atan trader_atr trader_avgprice trader_bbands trader_beta trader_bop trader_cci trader_cdl2crows trader_cdl3blackcrows trader_cdl3inside trader_cdl3linestrike trader_cdl3outside trader_cdl3starsinsouth trader_cdl3whitesoldiers trader_cdlabandonedbaby trader_cdladvanceblock trader_cdlbelthold trader_cdlbreakaway trader_cdlclosingmarubozu trader_cdlconcealbabyswall trader_cdlcounterattack trader_cdldarkcloudcover trader_cdldoji trader_cdldojistar trader_cdldragonflydoji trader_cdlengulfing trader_cdleveningdojistar trader_cdleveningstar trader_cdlgapsidesidewhite trader_cdlgravestonedoji trader_cdlhammer trader_cdlhangingman trader_cdlharami trader_cdlharamicross trader_cdlhighwave trader_cdlhikkake trader_cdlhikkakemod trader_cdlhomingpigeon trader_cdlidentical3crows trader_cdlinneck trader_cdlinvertedhammer trader_cdlkicking trader_cdlkickingbylength trader_cdlladderbottom trader_cdllongleggeddoji trader_cdllongline trader_cdlmarubozu trader_cdlmatchinglow trader_cdlmathold trader_cdlmorningdojistar trader_cdlmorningstar trader_cdlonneck trader_cdlpiercing trader_cdlrickshawman trader_cdlrisefall3methods trader_cdlseparatinglines trader_cdlshootingstar trader_cdlshortline trader_cdlspinningtop trader_cdlstalledpattern trader_cdlsticksandwich trader_cdltakuri trader_cdltasukigap trader_cdlthrusting trader_cdltristar trader_cdlunique3river trader_cdlupsidegap2crows trader_cdlxsidegap3methods trader_ceil trader_cmo trader_correl trader_cos trader_cosh trader_dema trader_div trader_dx trader_ema trader_errno trader_exp trader_floor trader_get_compat trader_get_unstable_period trader_ht_dcperiod trader_ht_dcphase trader_ht_phasor trader_ht_sine trader_ht_trendline trader_ht_trendmode trader_kama trader_linearreg_angle trader_linearreg_intercept trader_linearreg_slope trader_linearreg trader_ln trader_log10 trader_ma trader_macd trader_macdext trader_macdfix trader_mama trader_mavp trader_max trader_maxindex trader_medprice trader_mfi trader_midpoint trader_midprice trader_min trader_minindex trader_minmax trader_minmaxindex trader_minus_di trader_minus_dm trader_mom trader_mult trader_natr trader_obv trader_plus_di trader_plus_dm trader_ppo trader_roc trader_rocp trader_rocr100 trader_rocr trader_rsi trader_sar trader_sarext trader_set_compat trader_set_unstable_period trader_sin trader_sinh trader_sma trader_sqrt trader_stddev trader_stoch trader_stochf trader_stochrsi trader_sub trader_sum trader_t3 trader_tan trader_tanh trader_tema trader_trange trader_trima trader_trix trader_tsf trader_typprice trader_ultosc trader_var trader_wclprice trader_willr trader_wma trader_acos)
|
172
174
|
b["ODBC"] = Set.new %w(odbc_autocommit odbc_autocommit odbc_binmode odbc_close_all odbc_close odbc_columnprivileges odbc_columns odbc_commit odbc_connect odbc_cursor odbc_data_source odbc_do odbc_error odbc_errormsg odbc_exec odbc_execute odbc_fetch_array odbc_fetch_into odbc_fetch_object odbc_fetch_row odbc_field_len odbc_field_name odbc_field_num odbc_field_precision odbc_field_scale odbc_field_type odbc_foreignkeys odbc_free_result odbc_gettypeinfo odbc_longreadlen odbc_next_result odbc_num_fields odbc_num_rows odbc_pconnect odbc_prepare odbc_primarykeys odbc_procedurecolumns odbc_procedures odbc_result_all odbc_result odbc_rollback odbc_setoption odbc_specialcolumns odbc_statistics odbc_tableprivileges odbc_tables odbc_autocommit)
|
173
175
|
b["URL"] = Set.new %w(base64_decode base64_decode base64_encode get_headers get_meta_tags http_build_query parse_url rawurldecode rawurlencode urldecode urlencode base64_decode)
|
174
|
-
b["Variable handling"] = Set.new %w(
|
176
|
+
b["Variable handling"] = Set.new %w(boolval boolval debug_zval_dump doubleval empty floatval get_defined_vars get_resource_type gettype import_request_variables intval is_array is_bool is_callable is_double is_float is_int is_integer is_long is_null is_numeric is_object is_real is_resource is_scalar is_string isset print_r serialize settype strval unserialize unset var_dump var_export boolval)
|
175
177
|
b["vpopmail"] = Set.new %w(vpopmail_add_alias_domain_ex vpopmail_add_alias_domain_ex vpopmail_add_alias_domain vpopmail_add_domain_ex vpopmail_add_domain vpopmail_add_user vpopmail_alias_add vpopmail_alias_del_domain vpopmail_alias_del vpopmail_alias_get_all vpopmail_alias_get vpopmail_auth_user vpopmail_del_domain_ex vpopmail_del_domain vpopmail_del_user vpopmail_error vpopmail_passwd vpopmail_set_user_quota vpopmail_add_alias_domain_ex)
|
176
178
|
b["W32api"] = Set.new %w(w32api_deftype w32api_deftype w32api_init_dtype w32api_invoke_function w32api_register_function w32api_set_call_method w32api_deftype)
|
177
179
|
b["WDDX"] = Set.new %w(wddx_add_vars wddx_add_vars wddx_deserialize wddx_packet_end wddx_packet_start wddx_serialize_value wddx_serialize_vars wddx_add_vars)
|
@@ -0,0 +1,146 @@
|
|
1
|
+
module Rouge
|
2
|
+
module Lexers
|
3
|
+
class Rust < RegexLexer
|
4
|
+
desc 'The Rust programming language (rust-lang.org)'
|
5
|
+
tag 'rust'
|
6
|
+
aliases 'rs'
|
7
|
+
# TODO: *.rc conflicts with the rc shell...
|
8
|
+
filenames '*.rs', '*.rc'
|
9
|
+
mimetypes 'text/x-rust'
|
10
|
+
|
11
|
+
def self.analyze_text(text)
|
12
|
+
return 1 if text.shebang? 'rustc'
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.keywords
|
16
|
+
@keywords ||= %w(
|
17
|
+
as assert break const copy do drop else enum extern fail false
|
18
|
+
fn for if impl let log loop match mod move mut priv pub pure
|
19
|
+
ref return self static struct true trait type unsafe use while
|
20
|
+
)
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.builtins
|
24
|
+
@builtins ||= Set.new %w(
|
25
|
+
Add BitAnd BitOr BitXor bool c_char c_double c_float char
|
26
|
+
c_int clock_t c_long c_longlong Cons Const Copy c_schar c_short
|
27
|
+
c_uchar c_uint c_ulong c_ulonglong c_ushort c_void dev_t DIR
|
28
|
+
dirent Div Either Eq Err f32 f64 Failure FILE float fpos_t
|
29
|
+
i16 i32 i64 i8 Index ino_t int intptr_t Left mode_t Modulo Mul
|
30
|
+
Neg Nil None Num off_t Ok Option Ord Owned pid_t Ptr ptrdiff_t
|
31
|
+
Right Send Shl Shr size_t Some ssize_t str Sub Success time_t
|
32
|
+
u16 u32 u64 u8 uint uintptr_t
|
33
|
+
)
|
34
|
+
end
|
35
|
+
|
36
|
+
id = /[a-z_]\w*/i
|
37
|
+
hex = /[0-9a-f]/i
|
38
|
+
escapes = %r(
|
39
|
+
\\ ([nrt'\\] | x#{hex}{2} | u#{hex}{4} | U#{hex}{8})
|
40
|
+
)x
|
41
|
+
size = /8|16|32|64/
|
42
|
+
|
43
|
+
state :start_line do
|
44
|
+
mixin :whitespace
|
45
|
+
rule /\s+/, 'Text'
|
46
|
+
rule /#\[/ do
|
47
|
+
token 'Comment.Preproc'; push :attribute
|
48
|
+
end
|
49
|
+
rule(//) { pop! }
|
50
|
+
end
|
51
|
+
|
52
|
+
state :attribute do
|
53
|
+
mixin :whitespace
|
54
|
+
mixin :has_literals
|
55
|
+
rule /[(,)=]/, 'Comment.Preproc'
|
56
|
+
rule /\]/, 'Comment.Preproc', :pop!
|
57
|
+
rule id, 'Comment.Preproc'
|
58
|
+
end
|
59
|
+
|
60
|
+
state :whitespace do
|
61
|
+
rule /\s+/, 'Text'
|
62
|
+
rule %r(//[^\n]*), 'Comment'
|
63
|
+
rule %r(/[*].*?[*]/)m, 'Comment.Multiline'
|
64
|
+
end
|
65
|
+
|
66
|
+
state :root do
|
67
|
+
rule /\n/, 'Text', :start_line
|
68
|
+
mixin :whitespace
|
69
|
+
rule /\b(?:#{Rust.keywords.join('|')})\b/, 'Keyword'
|
70
|
+
mixin :has_literals
|
71
|
+
|
72
|
+
rule %r([=-]>), 'Keyword'
|
73
|
+
rule %r(<->), 'Keyword'
|
74
|
+
rule /[()\[\]{}|,:;]/, 'Punctuation'
|
75
|
+
rule /[*!@~&+%^<>=-]/, 'Operator'
|
76
|
+
|
77
|
+
rule /[.]?#{id}(?=\s*[(])/m, 'Name.Function'
|
78
|
+
rule /[.]#{id}/, 'Name.Property'
|
79
|
+
rule /(#{id})(::)/m do
|
80
|
+
group 'Name.Namespace'; group 'Punctuation'
|
81
|
+
end
|
82
|
+
|
83
|
+
# macros
|
84
|
+
rule /#{id}!/, 'Name.Decorator'
|
85
|
+
|
86
|
+
rule /#{id}/ do |m|
|
87
|
+
name = m[0]
|
88
|
+
if self.class.builtins.include? name
|
89
|
+
token 'Name.Builtin'
|
90
|
+
else
|
91
|
+
token 'Name'
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
state :has_literals do
|
97
|
+
# constants
|
98
|
+
rule /\b(?:true|false|nil)\b/, 'Keyword.Constant'
|
99
|
+
# ()
|
100
|
+
rule /[(]\s*[)]/, 'Keyword.Constant'
|
101
|
+
# characters
|
102
|
+
rule %r(
|
103
|
+
' (?: #{escapes} | [^\\] ) '
|
104
|
+
)x, 'Literal.String.Char'
|
105
|
+
|
106
|
+
rule /"/, 'Literal.String', :string
|
107
|
+
|
108
|
+
# numbers
|
109
|
+
dot = /[.][0-9_]+/
|
110
|
+
exp = /e[-+]?[0-9_]+/
|
111
|
+
flt = /f32|f64/
|
112
|
+
|
113
|
+
rule %r(
|
114
|
+
[0-9]+
|
115
|
+
(#{dot} #{exp}? #{flt}?
|
116
|
+
|#{dot}? #{exp} #{flt}?
|
117
|
+
|#{dot}? #{exp}? #{flt}
|
118
|
+
)
|
119
|
+
)x, 'Literal.Number.Float'
|
120
|
+
|
121
|
+
rule %r(
|
122
|
+
( 0b[10_]+
|
123
|
+
| 0x[0-9a-fA-F-]+
|
124
|
+
| [0-9]+
|
125
|
+
) (u#{size}?|i#{size})?
|
126
|
+
)x, 'Literal.Number.Integer'
|
127
|
+
|
128
|
+
end
|
129
|
+
|
130
|
+
state :string do
|
131
|
+
rule /"/, 'Literal.String', :pop!
|
132
|
+
rule escapes, 'Literal.String.Escape'
|
133
|
+
rule /%%/, 'Literal.String.Interpol'
|
134
|
+
rule %r(
|
135
|
+
%
|
136
|
+
( [0-9]+ [$] )? # Parameter
|
137
|
+
[0#+-]* # Flag
|
138
|
+
( [0-9]+ [$]? )? # Width
|
139
|
+
( [.] [0-9]+ )? # Precision
|
140
|
+
[bcdfiostuxX?] # Type
|
141
|
+
)x, 'Literal.String.Interpol'
|
142
|
+
rule /[^%"\\]+/m, 'Literal.String'
|
143
|
+
end
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Rouge
|
2
|
+
module Lexers
|
3
|
+
class Session < TemplateLexer
|
4
|
+
desc 'an interactive session of another language'
|
5
|
+
tag 'session'
|
6
|
+
|
7
|
+
default_options :prompt => /(\A|\n)[^$#]+[$#]/
|
8
|
+
default_options :parent => 'shell'
|
9
|
+
|
10
|
+
def prompt_regex
|
11
|
+
@prompt_regex ||= option(:prompt).tap do |prompt|
|
12
|
+
Regexp === prompt ? prompt : Regexp.new(prompt)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def stream_tokens(str, &b)
|
17
|
+
scanner = StringScanner.new(str)
|
18
|
+
|
19
|
+
until scanner.eos?
|
20
|
+
if scanner.scan(prompt_regex)
|
21
|
+
debug { "prompt: #{scanner[0].inspect}" }
|
22
|
+
yield Token['Generic.Heading'], scanner[0]
|
23
|
+
|
24
|
+
scanner.scan(line_regex)
|
25
|
+
debug { "line: #{scanner[0].inspect}" }
|
26
|
+
|
27
|
+
parent.lex(scanner[0], :continue => true, &b)
|
28
|
+
end
|
29
|
+
|
30
|
+
scanner.scan(until_prompt_regex)
|
31
|
+
debug { "(#{until_prompt_regex.inspect}: #{scanner[0].inspect}" }
|
32
|
+
yield Token['Generic.Output'], scanner[0]
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def line_regex
|
39
|
+
@line_regex ||= /(\\.|.)*?\n/
|
40
|
+
end
|
41
|
+
|
42
|
+
def until_prompt_regex
|
43
|
+
@until_prompt_regex ||= /.*?(?=#{prompt_regex})|.*/m
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
data/lib/rouge/version.rb
CHANGED
data/rouge.gemspec
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
require './lib/rouge/version'
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = "rouge"
|
5
|
+
s.version = Rouge.version
|
6
|
+
s.authors = ["Jay Adkisson"]
|
7
|
+
s.email = ["jjmadkisson@gmail.com"]
|
8
|
+
s.summary = "A pure-ruby colorizer based on pygments"
|
9
|
+
s.description = <<-desc.strip.gsub(/\s+/, ' ')
|
10
|
+
Rouge aims to a be a simple, easy-to-extend drop-in replacement
|
11
|
+
for pygments.
|
12
|
+
desc
|
13
|
+
s.homepage = "http://github.com/jayferd/rouge"
|
14
|
+
s.rubyforge_project = "rouge"
|
15
|
+
s.files = Dir['Gemfile', 'rouge.gemspec', 'lib/**/*.rb', 'bin/rougify', 'lib/rouge/demos/*']
|
16
|
+
s.executables = %w(rougify)
|
17
|
+
|
18
|
+
s.add_dependency 'thor'
|
19
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rouge
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.10
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-01-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
@@ -36,6 +36,7 @@ extensions: []
|
|
36
36
|
extra_rdoc_files: []
|
37
37
|
files:
|
38
38
|
- Gemfile
|
39
|
+
- rouge.gemspec
|
39
40
|
- lib/rouge/util.rb
|
40
41
|
- lib/rouge/lexers/nginx.rb
|
41
42
|
- lib/rouge/lexers/python.rb
|
@@ -56,6 +57,7 @@ files:
|
|
56
57
|
- lib/rouge/lexers/diff.rb
|
57
58
|
- lib/rouge/lexers/io.rb
|
58
59
|
- lib/rouge/lexers/viml.rb
|
60
|
+
- lib/rouge/lexers/rust.rb
|
59
61
|
- lib/rouge/lexers/objective_c.rb
|
60
62
|
- lib/rouge/lexers/smalltalk.rb
|
61
63
|
- lib/rouge/lexers/php/builtins.rb
|
@@ -70,6 +72,7 @@ files:
|
|
70
72
|
- lib/rouge/lexers/java.rb
|
71
73
|
- lib/rouge/lexers/php.rb
|
72
74
|
- lib/rouge/lexers/yaml.rb
|
75
|
+
- lib/rouge/lexers/session.rb
|
73
76
|
- lib/rouge/lexers/coffeescript.rb
|
74
77
|
- lib/rouge/lexers/tcl.rb
|
75
78
|
- lib/rouge/lexers/css.rb
|
@@ -126,6 +129,7 @@ files:
|
|
126
129
|
- lib/rouge/demos/groovy
|
127
130
|
- lib/rouge/demos/conf
|
128
131
|
- lib/rouge/demos/nginx
|
132
|
+
- lib/rouge/demos/rust
|
129
133
|
- lib/rouge/demos/tcl
|
130
134
|
- lib/rouge/demos/c
|
131
135
|
- lib/rouge/demos/perl
|