Browse Source

Add documentation for `write_decorated_table`

Feoramund 1 year ago
parent
commit
ba354e0524
1 changed files with 51 additions and 0 deletions
  1. 51 0
      core/text/table/doc.odin

+ 51 - 0
core/text/table/doc.odin

@@ -265,5 +265,56 @@ This will print out:
 	| Excessive Diacritics        | H̷e̶l̵l̸o̴p̵e̷ ̸w̶o̸r̵l̶d̵!̴                                                                               |
 	+-----------------------------+----------------------------------------------------------------------------------------------+
 
+**Decorated Tables:**
+
+If you'd prefer to change the borders used by the plain-text table printing,
+there is the `write_decorated_table` procedure that allows you to change the
+corners and dividers.
+
+Here is a complete example:
+
+	package main
+
+	import "core:fmt"
+	import "core:io"
+	import "core:os"
+	import "core:text/table"
+
+	box_drawing :: proc(w: io.Writer) {
+		t: table.Table
+		table.init(&t)
+		table.caption(&t, "Box Drawing Example")
+		table.padding(&t, 2, 2)
+		table.header_of_aligned_values(&t, {{.Left, "Operating System"}, {.Center, "Year Introduced"}})
+
+		table.row(&t, "UNIX",                "1973")
+		table.row(&t, "MS-DOS",              "1981")
+		table.row(&t, "Commodore 64 KERNAL", "1982")
+		table.row(&t, "Mac OS",              "1984")
+		table.row(&t, "Amiga",               "1985")
+		table.row(&t, "Windows 1.0",         "1985")
+		table.row(&t, "Linux",               "1991")
+		table.row(&t, "Windows 3.1",         "1992")
+
+		decorations := table.Decorations {
+			"┌", "┬", "┐",
+			"├", "┼", "┤",
+			"└", "┴", "┘",
+			"│", "─",
+		}
+
+		table.write_decorated_table(w, &t, decorations)
+		fmt.println()
+	}
+
+	main :: proc() {
+		stdout := os.stream_from_handle(os.stdout)
+
+		box_drawing(stdout)
+	}
+
+While the decorations support multi-codepoint Unicode graphemes, do note that
+each border character should not be larger than one monospace cell.
+
 */
 package text_table