Hello, this is syntax highlighting for kamailio.cfg, right?
Just to clarify better to what was asked for earlier on the mailing list as code formatter, which was expected to do indentation of the file content (a-la clang-format for c files). We can create a repo on kamailio github oraganization, like emacs-kamailio-syntax, similar to what is now for vim: * https://github.com/kamailio/vim-kamailio-syntax Cheers, Daniel On 10.12.20 08:00, Juha Heinanen wrote: > After noticing that emacs mode is missing, below is my first cut of > kamailio-mode.el. > > -- Juha > > ----------------------------------------------------------------------- > > ;; kamailio mode for emacs (function list is not complete) > > ;; activate by starting your kamailio.cfg with this kind of line: > > ;; #-*-mode: kamailio; tab-width: 4; c-basic-offset: 4; > > (setq kamailio-font-lock-keywords > (let* ( > ;; define several category of keywords > (x-keywords '("branch_route" "break" "case" "default" "else" > "event_route" "exit" "failure_route" "for" "if" "loadmodule" "onreply_route" > "onsend_route" "reply_route" "request_route" "return" "route" "switch" > "while")) > (x-types '()) > (x-constants '()) > (x-events '()) > (x-functions '("acc_db_request" "add_path_received" > "add_rr_param" "allow_routing" "allow_trusted" "append_hf" "append_to_reply" > "avp_check" "avp_delete" "change_reply_status" "check_route_param" "defined" > "dp_translate" "ERROR" "fix_nated_sdp" "force_send_socket" "forward" > "get_redirects" "handle_ruri_alias" "inactivate_gw" "INFO" "in_list" > "isflagset" "is_avp_set" "isbflagset" "is_direction" "is_domain_local" > "is_e164" "is_gflag" "is_gruu" "is_method" "is_numeric" "is_present_hf" > "jsonrpc_dispatch" "load_gws" "lookup_domain" "lookup" "loose_route" > "modparam" "mt_match" "NOTICE" "proxy_challenge" "record_route" "redirecting" > "remove_hf" "resetflag" "rtpengine_answer" "rtpengine_delete" > "rtpengine_offer" "save" "sdp_content" "sdp_transport" "send_reply_mode" > "send_reply" "setbflag" "setflag" "setxflag" "set_reply_close" > "set_reply_no_connect" "set_rtpengine_set" "set_uri_host" "set_uri_user" > "set_forward_no_connect" "sql_query" "sql_result_free" "starts_with" > "subst_uri" "tel2sip" "t_check_status" "t_is_canceled" "t_load_contacts" > "t_next_contacts" "t_on_branch" "t_on_failure" "t_on_reply" "t_relay_cancel" > "t_relay" "t_set_fr" "unregister" "WARN" "ws_handle_handshake" > "www_challenge" "xhttp_reply")) > (x-keywords-regexp (regexp-opt x-keywords 'words)) > (x-types-regexp (regexp-opt x-types 'words)) > (x-constants-regexp (regexp-opt x-constants 'words)) > (x-events-regexp (regexp-opt x-events 'words)) > (x-functions-regexp (regexp-opt x-functions 'words))) > `( > (,x-types-regexp . font-lock-type-face) > (,x-constants-regexp . font-lock-constant-face) > (,x-events-regexp . font-lock-builtin-face) > (,x-functions-regexp . font-lock-function-name-face) > (,x-keywords-regexp . font-lock-keyword-face) > ))) > > (defvar kamailio-mode-syntax-table nil "Syntax table for `kamailio-mode'.") > > (setq kamailio-mode-syntax-table > (let ( (synTable (make-syntax-table))) > ;; python style comment: “# …” > (modify-syntax-entry ?# "<" synTable) > (modify-syntax-entry ?\n ">" synTable) > synTable)) > > (define-derived-mode kamailio-mode c-mode "kamailio mode" > "Major mode for editing Kamailio configuration files" > (setq font-lock-defaults '((kamailio-font-lock-keywords))) > (set-syntax-table kamailio-mode-syntax-table)) > > (provide 'kamailio-mode) > _______________________________________________ > Kamailio (SER) - Users Mailing List > [email protected] > https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users -- Daniel-Constantin Mierla -- www.asipto.com www.twitter.com/miconda -- www.linkedin.com/in/miconda Funding: https://www.paypal.me/dcmierla _______________________________________________ Kamailio (SER) - Users Mailing List [email protected] https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
