File tree Expand file tree Collapse file tree 1 file changed +33
-0
lines changed
Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Original file line number Diff line number Diff line change @@ -66,6 +66,39 @@ func (te *TreeEntry) IsSubModule() bool {
6666 return te .mode == ENTRY_MODE_COMMIT
6767}
6868
69+ func (te * TreeEntry ) JumpableName () string {
70+ entry := te
71+ for entry .IsJumpableDir () {
72+ tree , _ := entry .ptree .SubTree (entry .name )
73+ entries , _ := tree .ListEntries ()
74+ entry = entries [0 ]
75+ }
76+ return entry .name
77+ }
78+ func (te * TreeEntry ) JumpablePath () string {
79+ path := ""
80+ entry := te
81+ for entry .IsJumpableDir () {
82+ path += entry .name + "/"
83+ tree , _ := entry .ptree .SubTree (entry .name )
84+ entries , _ := tree .ListEntries ()
85+ entry = entries [0 ]
86+ }
87+ return path
88+ }
89+
90+ func (te * TreeEntry ) IsJumpableDir () bool {
91+ if te .IsSubModule () || ! te .IsDir () {
92+ return false
93+ }
94+ tree , err := te .ptree .SubTree (te .name )
95+ if err != nil {
96+ return false
97+ }
98+ entries , err := tree .ListEntries ()
99+ return len (entries ) == 1 //TODO
100+ }
101+
69102func (te * TreeEntry ) IsDir () bool {
70103 return te .mode == ENTRY_MODE_TREE
71104}
You can’t perform that action at this time.
0 commit comments