Skip to content

Commit 827908d

Browse files
authored
Merge pull request #307 from AndreaCrotti/reporting
Reporting
2 parents 1c1a5d2 + af322fb commit 827908d

File tree

366 files changed

+973
-875
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

366 files changed

+973
-875
lines changed

report/project.clj

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
(defproject report "0.1.0-SNAPSHOT"
2+
:description "Give a report of the yas snippets"
3+
:dependencies [[org.clojure/clojure "1.10.0"]
4+
[hiccup "1.0.5"]]
5+
6+
:uberjar-name "report.jar"
7+
:min-lein-version "2.8.1"
8+
:source-paths ["src"]
9+
:test-paths ["test"]
10+
:resource-paths ["resources"])

report/src/core.clj

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
(ns core
2+
"Parse files and generate some html reports"
3+
(:require [clojure.string :as str]
4+
[hiccup.core :as hiccup]
5+
[clojure.java.io :as io]))
6+
7+
;; TODO: do something whenever the mode has just `.yas-parents` and nothing else?
8+
(def bulma-url "https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.4/css/bulma.css")
9+
10+
(defn kw-pattern
11+
[kw]
12+
(re-pattern (format "# %s: (.*)" kw)))
13+
14+
(defn extract-keyword
15+
[filename keyword]
16+
(let [lines (-> filename
17+
slurp
18+
str/split-lines)]
19+
(first
20+
(remove nil?
21+
(map #(last (re-find (kw-pattern keyword) %)) lines)))))
22+
23+
(defn mode-files
24+
[mode-dir]
25+
(filter #(.isFile %)
26+
(file-seq (io/file mode-dir))))
27+
28+
(defn parse-mode
29+
[mode-dir]
30+
(for [f (mode-files mode-dir)]
31+
{:filename (.getName (io/file mode-dir f))
32+
:name (extract-keyword f "name")
33+
:key (or (extract-keyword f "key")
34+
(extract-keyword f "name"))
35+
:group (extract-keyword f "group")
36+
:desc (extract-keyword f "desc")}))
37+
38+
(defn parse-everything
39+
[snippets-dir]
40+
(into {}
41+
(remove nil?)
42+
(for [d (file-seq (io/file snippets-dir))]
43+
(when (.isDirectory d)
44+
{(.getName d) (parse-mode d)}))))
45+
46+
(defn store-to-edn
47+
[snippets-dir output-file]
48+
(spit output-file (parse-everything snippets-dir)))
49+
50+
(def header [:name :key :filename :group :desc])
51+
52+
(defn table
53+
"Generate a table"
54+
[header rows]
55+
[:table.table.is-striped
56+
[:thead (into [:tr.tr]
57+
(for [h header]
58+
[:td.td (name h)]))]
59+
60+
(into [:tbody.tbody]
61+
(for [r rows]
62+
(into [:tr.tr]
63+
(for [h header]
64+
[:td.td (r h)]))))])
65+
66+
(defn structure
67+
[body]
68+
[:html
69+
[:head
70+
[:link {:rel "stylesheet"
71+
:href bulma-url
72+
:crossorigin "anonymous"}]]
73+
(into [:body] body)])
74+
75+
(defn gen-html
76+
[snips-dir]
77+
(let [all-modes (parse-everything snips-dir)
78+
tables (for [[m snips] (sort all-modes)]
79+
[:div.section
80+
[:h2.subtitle m]
81+
(table header snips)])]
82+
(spit
83+
"hello.html"
84+
(hiccup/html
85+
(structure tables)))))
86+
87+
(comment
88+
(gen-html "../snippets"))

snippets/c++-mode/beginend

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# -*- mode: snippet -*-
2-
# name : v.begin(), v.end()
2+
# name: v.begin(), v.end()
33
# key: beginend
44
# --
55
${1:v}.begin(), $1.end

snippets/c++-mode/ns

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#name : namespace ...
1+
# name: namespace ...
22
# key: ns
33
# --
44
namespace

snippets/c++-mode/using

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#name : using namespace ...
1+
# name: using namespace ...
22
# key: using
33
# --
44
using namespace ${std};

snippets/c-lang-common/inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# -*- mode: snippet -*-
2-
# name : #include <...>
2+
# name: #include <...>
33
# key : incs
44
# --
55
#include <$1>

snippets/c-lang-common/inc.1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# -*- mode: snippet -*-
2-
# name : #include "..."
2+
# name: #include "..."
33
# key : incl
44
# --
55
#include "$1"

snippets/c-lang-common/once

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#name : #ifndef XXX; #define XXX; #endif
1+
# name: #ifndef XXX; #define XXX; #endif
22
# key: once
33
# --
44
#ifndef ${1:`(upcase (file-name-nondirectory (file-name-sans-extension (or (buffer-file-name) ""))))`_H}

snippets/cc-mode/case

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# -*- mode: snippet -*-
2-
# name : case : {...}
2+
# name: case : {...}
33
# key: case
44
# expand-env: ((yas-also-auto-indent-first-line t))
55
# --

snippets/cc-mode/do

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#name : do { ... } while (...)
1+
# name: do { ... } while (...)
22
# key: do
33
# --
44
do

0 commit comments

Comments
 (0)