+(defgroup columns nil
+ "Prettify columns."
+ :link '(emacs-library-link :tag "Source Lisp File" "delim-col.el")
+ :prefix "delimit-columns-"
+ :group 'internal)
+
+(defcustom delimit-columns-str-before ""
+ "Specify a string to be inserted before all columns."
+ :type '(string :tag "Before All Columns")
+ :group 'columns)
+
+(defcustom delimit-columns-str-separator ", "
+ "Specify a string to be inserted between each column."
+ :type '(string :tag "Between Each Column")
+ :group 'columns)
+
+(defcustom delimit-columns-str-after ""
+ "Specify a string to be inserted after all columns."
+ :type '(string :tag "After All Columns")
+ :group 'columns)
+
+(defcustom delimit-columns-before ""
+ "Specify a string to be inserted before each column."
+ :type '(string :tag "Before Each Column")
+ :group 'columns)
+
+(defcustom delimit-columns-after ""
+ "Specify a string to be inserted after each column."
+ :type '(string :tag "After Each Column")
+ :group 'columns)
+
+(defcustom delimit-columns-separator "\t"
+ "Specify a regexp which separates each column."
+ :type '(regexp :tag "Column Separator")
+ :group 'columns)
+
+(defcustom delimit-columns-format t
+ "Specify how to format columns.
+
+For examples below, consider:
+
+ + columns `ccc' and `dddd',
+ + the maximum column length for each column is 6,
+ + and the following settings:
+ (setq delimit-columns-before \"<\")
+ (setq delimit-columns-after \">\")
+ (setq delimit-columns-separator \":\")
+
+Valid values are:
+
+ nil no formating. That is, `delimit-columns-after' is followed by
+ `delimit-columns-separator'.
+ For example, the result is: \"<ccc>:<dddd>:\"
+
+ t align columns. That is, `delimit-columns-after' is followed by
+ `delimit-columns-separator' and then followed by spaces.
+ For example, the result is: \"<ccc>: <dddd>: \"
+
+ 'separator align separators. That is, `delimit-columns-after' is followed
+ by spaces and then followed by `delimit-columns-separator'.
+ For example, the result is: \"<ccc> :<dddd> :\"
+
+ 'padding format column by filling with spaces before
+ `delimit-columns-after'. That is, spaces are followed by
+ `delimit-columns-after' and then followed by
+ `delimit-columns-separator'.
+ For example, the result is: \"<ccc >:<dddd >:\"
+
+Any other value is treated as t."
+ :type '(choice :menu-tag "Column Formating"
+ :tag "Column Formating"
+ (const :tag "No Formating" nil)
+ (const :tag "Column Alignment" t)
+ (const :tag "Separator Aligment" separator)
+ (const :tag "Column Padding" padding))
+ :group 'columns)
+
+(defcustom delimit-columns-extra t
+ "Non-nil means that lines will have the same number of columns.
+
+This has effect only when there are lines with different number of columns."
+ :type '(boolean :tag "Lines With Same Number Of Column")
+ :group 'columns)
+
+(defcustom delimit-columns-start 0
+ "Specify column number to start prettifing.
+
+See also `delimit-columns-end' for documentation.
+
+The following relation must hold:
+ 0 <= delimit-columns-start <= delimit-columns-end
+
+The column number start from 0 and it's relative to the beginning of selected
+region. So if you selected a text region, the first column (column 0) is
+located at beginning of line. If you selected a text rectangle, the first
+column (column 0) is located at left corner."
+ :type '(integer :tag "Column Start")
+ :group 'columns)
+
+(defcustom delimit-columns-end 1000000
+ "Specify column number to end prettifing.
+
+See also `delimit-columns-start' for documentation.
+
+The following relation must hold:
+ 0 <= delimit-columns-start <= delimit-columns-end
+
+The column number start from 0 and it's relative to the beginning of selected
+region. So if you selected a text region, the first column (column 0) is
+located at beginning of line. If you selected a text rectangle, the first
+column (column 0) is located at left corner."
+ :type '(integer :tag "Column End")
+ :group 'columns)