DataGrip生成Table Docment文档脚本

Groovy脚本

import com.intellij.database.model.DasTable
import com.intellij.database.model.ObjectKind
import com.intellij.database.util.Case
import com.intellij.database.util.DasUtil
import com.intellij.database.psi.DbColumn;



FILES.chooseDirectoryAndSave("Choose directory", "Choose where to store generated files") { dir ->

    def schemaMap = new LinkedHashMap<String,Map<String,String>>();
    SELECTION.filter { (it.getKind() == ObjectKind.TABLE || it.getKind() == ObjectKind.SCHEMA) }.each {
        def schemaName = DasUtil.getSchema(it);
        if(!schemaMap.containsKey(schemaName)){
            schemaMap.put(schemaName,new LinkedHashMap<String,String>());
        }
        LOG.print("SELECTION type:"+it.getKind());
        if(it.getKind() == ObjectKind.TABLE){
            def tableName = it.getName();
            if(!schemaMap.get(schemaName).containsKey(tableName)){
                schemaMap.get(schemaName).put(tableName,generateTableHTMLStyle(it));
            }
        }else if(it.getKind() == ObjectKind.SCHEMA){
            LOG.print("DasChildren:"+it.getDasChildren(ObjectKind.TABLE));
            it.getDasChildren(ObjectKind.TABLE).each { table ->
                def tableName = table.getName();
                if(!schemaMap.get(schemaName).containsKey(tableName)){
                    schemaMap.get(schemaName).put(tableName,generateTableHTMLStyle(table));
                }
            }
        }
    }
    def outlineHtml = '';
    def tableHtml = '';
    LOG.print("schemaMap:"+schemaMap);
    schemaMap.each { schema ->

        outlineHtml += '<div id="_ul">';
        outlineHtml += '<a href="#'+schema.key+'">'+schema.key+'</a>';

        outlineHtml += '    <div id="_ul">';
        tableHtml += '<h2 id="'+schema.key+'"><a class="anchor" name="'+schema.key+'" href="#'+schema.key+'"><span class="octicon octicon-link"></span></a>'+schema.key+'</h2>';
        schema.value.each { t ->
            outlineHtml += '<a href="#'+(schema.key+'.'+t.key)+'">'+(schema.key+'.'+t.key)+'</a>';
            tableHtml += (t.value);
        }
        outlineHtml += '    </div>';

        outlineHtml += '</div>';
    };

    def styleCss = '@font-face{font-family: octicons-link; src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAZwABAAAAAACFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEU0lHAAAGaAAAAAgAAAAIAAAAAUdTVUIAAAZcAAAACgAAAAoAAQAAT1MvMgAAAyQAAABJAAAAYFYEU3RjbWFwAAADcAAAAEUAAACAAJThvmN2dCAAAATkAAAABAAAAAQAAAAAZnBnbQAAA7gAAACyAAABCUM+8IhnYXNwAAAGTAAAABAAAAAQABoAI2dseWYAAAFsAAABPAAAAZwcEq9taGVhZAAAAsgAAAA0AAAANgh4a91oaGVhAAADCAAAABoAAAAkCA8DRGhtdHgAAAL8AAAADAAAAAwGAACfbG9jYQAAAsAAAAAIAAAACABiATBtYXhwAAACqAAAABgAAAAgAA8ASm5hbWUAAAToAAABQgAAAlXu73sOcG9zdAAABiwAAAAeAAAAME3QpOBwcmVwAAAEbAAAAHYAAAB/aFGpk3jaTY6xa8JAGMW/O62BDi0tJLYQincXEypYIiGJjSgHniQ6umTsUEyLm5BV6NDBP8Tpts6F0v+k/0an2i+itHDw3v2+9+DBKTzsJNnWJNTgHEy4BgG3EMI9DCEDOGEXzDADU5hBKMIgNPZqoD3SilVaXZCER3/I7AtxEJLtzzuZfI+VVkprxTlXShWKb3TBecG11rwoNlmmn1P2WYcJczl32etSpKnziC7lQyWe1smVPy/Lt7Kc+0vWY/gAgIIEqAN9we0pwKXreiMasxvabDQMM4riO+qxM2ogwDGOZTXxwxDiycQIcoYFBLj5K3EIaSctAq2kTYiw+ymhce7vwM9jSqO8JyVd5RH9gyTt2+J/yUmYlIR0s04n6+7Vm1ozezUeLEaUjhaDSuXHwVRgvLJn1tQ7xiuVv/ocTRF42mNgZGBgYGbwZOBiAAFGJBIMAAizAFoAAABiAGIAznjaY2BkYGAA4in8zwXi+W2+MjCzMIDApSwvXzC97Z4Ig8N/BxYGZgcgl52BCSQKAA3jCV8CAABfAAAAAAQAAEB42mNgZGBg4f3vACQZQABIMjKgAmYAKEgBXgAAeNpjYGY6wTiBgZWBg2kmUxoDA4MPhGZMYzBi1AHygVLYQUCaawqDA4PChxhmh/8ODDEsvAwHgMKMIDnGL0x7gJQCAwMAJd4MFwAAAHjaY2BgYGaA4DAGRgYQkAHyGMF8NgYrIM3JIAGVYYDT+AEjAwuDFpBmA9KMDEwMCh9i/v8H8sH0/4dQc1iAmAkALaUKLgAAAHjaTY9LDsIgEIbtgqHUPpDi3gPoBVyRTmTddOmqTXThEXqrob2gQ1FjwpDvfwCBdmdXC5AVKFu3e5MfNFJ29KTQT48Ob9/lqYwOGZxeUelN2U2R6+cArgtCJpauW7UQBqnFkUsjAY/kOU1cP+DAgvxwn1chZDwUbd6CFimGXwzwF
  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值