Skip to content

Emacs major mode for editing Robot Framework files.

License

Notifications You must be signed in to change notification settings

kopoli/robot-mode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Emacs Logo

robot-mode.el

Major-mode for Robot Framework files


License GPLv3 MELPA MELPA Stable

Description

A Robot Framework major mode for Emacs. Robot Framework is a framework for acceptance testing.

This major mode provides the following:

  • Syntax highlighting.
  • Indentation.
  • Alignment of keyword contents.
  • Line continuation in Robot Framework syntax.
  • A helper for adding necessary spaces between arguments.

Alignment of keyword contents

Align the contents of a keyword, test or task with C-c C-a. It changes the following code:

Example Keyword
    [Documentation]    Documents the keyword
    [Arguments]    ${arg1}    ${arg2}
    Log    ${arg1}            ${arg2}

To:

Example Keyword
    [Documentation]    Documents the keyword
    [Arguments]        ${arg1}    ${arg2}
    Log                ${arg1}    ${arg2}

Line continuation

Insert a newline, indentation, ellipsis and necessary spaces at current point with C-c C-j. For example (| denotes the cursor):

Another Keyword
    [Documentation]    A very long text| that describes the keyword.

To:

Another Keyword
    [Documentation]    A very long text
    ...    |that describes the keyword.

Add spacing for an argument

Robot framework separates arguments to keywords with 2 or more spaces. The C-c C-SPC sets the whitespace amount around point to exactly robot-mode-argument-separator. For example (| denotes the cursor):

Example Keyword
    [Arguments]    ${first}|${second}

To:

Example Keyword
    [Arguments]    ${first}    |${second}

Limitations

Notable changes

Version 0.8.0

  • Add robot-mode-retain-point-on-indent option to retain point position when indenting. Currently it is disabled by default, but may be enabled in the future.
  • Prevent indent toggling from interfering with TAB completion when tab-always-indent is set to 'complete and the above point retention is used.
  • Fix several indent toggling bugs:
    • Set electric-indent-inhibit.
    • Disable when aligning by using variable robot-mode-indent-toggle.
  • Fix syntax highlighting and indentation when a control structure word is the first word in a keyword.
  • Fix various other syntax highlighting bugs.

Version 0.7.0

  • Add control structure indentation (IF/WHILE/FOR/TRY etc.).

Customization Documentation

robot-mode-basic-offset

The amount of indentation for test and keyword steps.

robot-mode-argument-separator

The amount of spaces between different arguments to keywords.

robot-mode-retain-point-on-indent

If the point position is after the indentation, retain it when indenting a line. Otherwise move point always back-to-indentation.

Function and Macro Documentation

(robot-mode-syntax-propertize START END)

Propertize text between START and END.

(robot-mode-indent-line)

Indent current line in Robot mode. Used as indent-line-function of the mode.

(robot-mode-beginning-of-defun)

Move the point to the beginning of the current defun. Defuns are the steps of a keyword, test or task. This is used as beginning-of-defun-function of the mode.

(robot-mode-end-of-defun)

Move the point to the end of the current defun. Defuns are the steps of a keyword, test or task. This is used as end-of-defun-function of the mode.

(robot-mode-align BEG END)

Align the contents of the region between BEG and END.

(robot-mode-align-defun)

Align the contents current defun.

(robot-mode-align-region-or-defun)

Call robot-mode-align if region is active, otherwise robot-mode-align-defun.

(robot-mode-split-continuation)

Split current line at point and continue in the next line. Prefix the continuation with indentation, ellipsis and spacing.

(robot-mode-add-argument)

Add exactly robot-mode-argument-separator spaces to point.


Markdown README file generated by make-readme-markdown.el

About

Emacs major mode for editing Robot Framework files.

Resources

License

Stars

Watchers

Forks

Packages

No packages published