[SR-Users] kamailio.cfg fomatter

Daniel-Constantin Mierla miconda at gmail.com
Thu Dec 10 09:07:44 CET 2020


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
> sr-users at lists.kamailio.org
> 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





More information about the sr-users mailing list