소스 검색

allow to filter "new" menu in filetree (close #53)

Nicolas Cannasse 5 년 전
부모
커밋
79f0c52138
2개의 변경된 파일7개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 0
      bin/defaultProps.json
  2. 5 2
      hide/view/FileTree.hx

+ 2 - 0
bin/defaultProps.json

@@ -48,6 +48,8 @@
 	"filetree.excludes": [
 		"(^|\/)\\.[^.]*$"
 	],
+	// allowed new extensions
+	"filetree.allowednew": ["*"],
 
 	// cdb keys
 

+ 5 - 2
hide/view/FileTree.hx

@@ -120,8 +120,11 @@ class FileTree extends FileView {
 			if( current != null )
 				tree.setSelection([current]);
 			e.preventDefault();
-			var newMenu = [for( e in EXTENSIONS ) if( e.options.createNew != null ) { label : e.options.createNew, click : createNew.bind(current, e) }];
-			newMenu.unshift({ label : "Directory", click : createNew.bind(current, { options : { createNew : "Directory" }, extensions : null, component : null }) });
+			var allowedNew : Array<String> = config.get("filetree.allowednew");
+			function allowed( ext : String ) return allowedNew.indexOf(ext) >= 0 || allowedNew.indexOf("*") >= 0;
+			var newMenu = [for( e in EXTENSIONS ) if( e.options.createNew != null && Lambda.exists(e.extensions, allowed) ) { label : e.options.createNew, click : createNew.bind(current, e) }];
+			if( allowed("dir") )
+				newMenu.unshift({ label : "Directory", click : createNew.bind(current, { options : { createNew : "Directory" }, extensions : null, component : null }) });
 			new hide.comp.ContextMenu([
 				{ label : "New..", menu:newMenu },
 				{ label : "Explore", enabled : current != null, click : function() { onExploreFile(current); } },