TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Why Don’t We Have a General-Purpose Tree Editor?

223 pointsby pcmonkabout 11 years ago

64 comments

rossngabout 11 years ago
DOT&#x2F;GraphViz [1] is very powerful. You might find it a bit unwieldy at first but, as with everything, editing in plain text is often faster than trying to use a GUI.<p>For extremely simple stuff, you can use TGF [2] to represent the graph and something like yEd [3] to view it.<p>None of these tools have any real provision for structured proofs etc., but that could be built.<p>[1] <a href="http://www.graphviz.org/Documentation/dotguide.pdf" rel="nofollow">http:&#x2F;&#x2F;www.graphviz.org&#x2F;Documentation&#x2F;dotguide.pdf</a><p>[2] <a href="http://docs.yworks.com/yfiles/doc/developers-guide/tgf.html" rel="nofollow">http:&#x2F;&#x2F;docs.yworks.com&#x2F;yfiles&#x2F;doc&#x2F;developers-guide&#x2F;tgf.html</a><p>[3] <a href="http://www.yworks.com/en/products_yed_about.html" rel="nofollow">http:&#x2F;&#x2F;www.yworks.com&#x2F;en&#x2F;products_yed_about.html</a>
评论 #7512708 未加载
评论 #7513027 未加载
评论 #7516526 未加载
评论 #7512794 未加载
评论 #7512492 未加载
评论 #7512503 未加载
hibikirabout 11 years ago
We do not have a general purpose tree editor because trees are quite the complicated structure, and most valuable operations on trees require quite a bit of knowledge of what the tree represents.<p>Look at, for instance, source code. In many languages, we represent code in a tree-like structure, just with text and braces&#x2F;parenthesis&#x2F;tabs as indentations. But we all know that there are major limitations on how to represent a class. If you have 200 methods in a class, said class is unwieldy. If your methods are very deep, the whole thing also becomes unwieldy, so we make them smaller. We&#x27;d still do that with huge monitors that could show lots and lots of code at once: Without abstraction, any nested structure is hard to manage.<p>Many text editors will collapse levels for you, but really, how often do you all use them? Whenever you need to use them, it&#x27;s a smell, because it means that the structure is getting too complex for a mind to handle.<p>This is not an issue that is unique to code. Any tree structure has the same issue of abstraction: We are not designed to handle more than one layer at a time, unless we are dealing with a tiny number of nodes. We have trouble seeing trees and navigating trees, so of course we can&#x27;t have good general tree editors. I&#x27;ve seen four attempts at just general tree visualizers at work in the last year. The most successful barely pay lip service to regular tree &#x27;views&#x27;, and instead try to answer secondary questions that would help us know how we want to explore the tree.<p>And, as others here have already said, there&#x27;s always non graphical representations. find, awk and grep can go very far when you are trying to find things on a tree. Proper indexing does a good job too.
评论 #7514639 未加载
评论 #7513370 未加载
评论 #7514521 未加载
评论 #7514970 未加载
评论 #7513578 未加载
评论 #7514906 未加载
评论 #7513843 未加载
teleclimberabout 11 years ago
In the comments in the article somebody mentioned this:<p><a href="http://strlen.com/treesheets/" rel="nofollow">http:&#x2F;&#x2F;strlen.com&#x2F;treesheets&#x2F;</a><p>Looks really cool. I always felt spreadsheets were too grid-oriented and flow charts too much about vectors and nodes. Treesheets looks like a great mashup of those two.
评论 #7514318 未加载
评论 #7514558 未加载
chavesnabout 11 years ago
Some others have already mentioned that &quot;mind mapping&quot; software is similar, and I&#x27;d agree -- just see this image[2]. That image was created with Mindnode[1], which I really like (I&#x27;ve only tried the light version, but that seems to be discontinued).<p>[1]: <a href="https://mindnode.com/assets/images/screens/iphone-1-1136x640-withstatusbar.png" rel="nofollow">https:&#x2F;&#x2F;mindnode.com&#x2F;assets&#x2F;images&#x2F;screens&#x2F;iphone-1-1136x640...</a><p>[2]: <a href="https://mindnode.com/" rel="nofollow">https:&#x2F;&#x2F;mindnode.com&#x2F;</a>
评论 #7513628 未加载
评论 #7512754 未加载
评论 #7513309 未加载
评论 #7518706 未加载
评论 #7515683 未加载
ttctciyfabout 11 years ago
Just slightly away from the practical job of finding a usable editor, but I found the following demo of an in-game node-based tree display&#x2F;editing interface from Limit Theory[1] lone developer Josh Parnell quite impressive as eye candy if nothing else:<p><pre><code> http:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=Ekq56VZqQvs&amp;t=5m25s </code></pre> earlier version:<p><pre><code> http:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=KN3tKT0E0t8&amp;t=14m30s </code></pre> (EDIT: also at: <a href="http://www.youtube.com/watch?v=KN3tKT0E0t8&amp;t=19m40s" rel="nofollow">http:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=KN3tKT0E0t8&amp;t=19m40s</a> as he updates the layout algo in real time (!))<p>Worth watching as he puts it through its paces.<p>If I was hiring someone to create a generic tree editor, his number would be top of my call list :)<p>[1] <a href="http://ltheory.com/" rel="nofollow">http:&#x2F;&#x2F;ltheory.com&#x2F;</a>
评论 #7514912 未加载
sceleratabout 11 years ago
I think there are many of examples out there; the simplistic answer to the OP question is &quot;we do; you just haven&#x27;t heard of them.&quot;<p>My favorite is OmniGraffle... you can enter nodes in a text-entry outline style mode and the results are updated instantly. The default styles and stencils, while recognizable as being generated by OG, are inoffensive, and the layout tools are among the best of any layout or presentation software.<p>Others have mentioned GraphViz, which is a general purpose graph description utility.<p>Outliners as a general category of software have existed since the 1980s and seen an ebb and flow of popularity. Just a few off the time of my head... Think, More, Acta, OmniOutliner.<p>The Frontier scripting language in particular stands out as a programming environment completely integrated into an outliner paradigm. My first exposure to code folding came when discovering Frontier sometime in the mid-&#x27;90s. As Apple put its Mac scripting focus on Applescript, Userland reimagined Frontier as a web site programming environment: templating, scripting, and content management all rolled into one. But at the same time it was a general purpose scripting environment.<p>Maybe my graphing needs are not so deep that these tools (or some combination with a few others) wouldn&#x27;t suffice for a variety of tree&#x2F;graph related tasks.
评论 #7513221 未加载
nmrmabout 11 years ago
The author&#x27;s examples -- proofs and ASTs -- provide a hint at the reason.<p>If you need a tree, it&#x27;s most likely that you want some custom operations on that tree (e.g. parsing text into the tree, pretty-printing the tree, traversing the tree in various ways, etc.)<p>At some point, the tree is just a data structure and what you&#x27;re interested in are full-blown, non-trivial algorithms&#x2F;programs for fairly domain-specific tasks. In these cases, a library (or even custom implementation) for a general purpose programming language is more useful than a tool (a la Excel or vim).<p>Viewed in this light, it&#x27;s not unsurprising that we have many domain-specific tools for manipulating trees. Most of the proof assistants have a GUI based on Gentzen-style sequents.<p>LaTeX has styles for type setting proofs which look like the ASCII ones in the article.<p>Tools for generating parsers often have tree-based UI&#x27;s.<p>And so on.
评论 #7512573 未加载
Pxtlabout 11 years ago
Well, if you&#x27;re okay with XML there&#x27;s Microsoft&#x27;s XML Notepad. It&#x27;s xsd-aware so you get type-safe constrained tree editing. But it&#x27;s ms, XML, and xsd...that&#x27;s like 3 strikes.
trogdoroabout 11 years ago
I posted this on the blog itself, but re-mentioning it here... I&#x27;ve been evolving Xiki for over 10 years to do be a language for doing this kind of thing. The ideas is you can interact with trees and other nested structures (file paths, dbs, general UI&#x27;s) from your text editor, using a simple plaintext representation, but in a GUI-like manner.<p>I&#x27;ve done talks about Xiki at RubyConf, Strange Loop, and QCon. Here&#x27;s a quick 3 minute video - <a href="https://www.youtube.com/watch?v=bUR_eUVcABg" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=bUR_eUVcABg</a>. I&#x27;m doing a Kickstarter campaign soon, to bring Xiki support to vim, sublime, and possibly other text editors!
评论 #7514708 未加载
评论 #7518922 未加载
fragsworthabout 11 years ago
You already have fairly general-purpose tree editing right under your nose - look at GUIs for your filesystem.<p>You can drag and drop folders and files. You can see the hierarchy on one side of your screen, and then the contents of a single node on another. Minimizing&#x2F;expanding usually works. You can rename things in-place.<p>If you&#x27;re imagining tree structures that don&#x27;t map really well to this kind of GUI, then the reason your tree editor doesn&#x27;t exist should be apparent.
评论 #7519366 未加载
评论 #7514232 未加载
评论 #7513620 未加载
eternalbanabout 11 years ago
<a href="http://scripting.com/98/01/stories/frontier5IsAnOutliner.html" rel="nofollow">http:&#x2F;&#x2F;scripting.com&#x2F;98&#x2F;01&#x2F;stories&#x2F;frontier5IsAnOutliner.htm...</a>
评论 #7512666 未加载
mgraczykabout 11 years ago
I once wrote an ASCII graph&#x2F;tree compiler that compiles ASCII representations like the example in the article into data structures.<p><a href="https://github.com/mgraczyk/GraphCompiler" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;mgraczyk&#x2F;GraphCompiler</a><p>The data structures can be used directly in Python or parsed&#x2F;consumed elsewhere. I think it is pretty useful, and I have used it in a couple of places where moderately complicated trees are used to generate C&#x2F;C++ code.
oneeyedpigeonabout 11 years ago
Are you kidding? We have excellent tools to edit and manage trees: touch, mkdir, cd, mv, ... :)
评论 #7513245 未加载
maxiepooabout 11 years ago
Like paredit: <a href="http://www.emacswiki.org/emacs/ParEdit" rel="nofollow">http:&#x2F;&#x2F;www.emacswiki.org&#x2F;emacs&#x2F;ParEdit</a>?
评论 #7513140 未加载
评论 #7512642 未加载
obeattieabout 11 years ago
Internally, we have a graph editing tool which uses D3 (screenshot [1]) which I threw together based on some existing examples. I&#x27;d be happy to open up the source code if there was any interest, though it&#x27;s really nothing all that special. The layout algorithm could definitely use some work for our use-case at least. It&#x27;s force-directed at the moment, using stock D3 layouts, but really needs a hierarchical mode. While it&#x27;s not perfect, it is intuitive enough that non-technical people &quot;get it&quot;.<p>Beyond this, yEd[2] is really quite cool (even if it does have a very dated UI).<p>[1] <a href="https://www.evernote.com/shard/s3/sh/67c67a48-8b3d-4eac-b7ee-427fbf6fb5ca/ab7dff4c05a5503d06b001ac7f248451/deep/0/Define-concept-relationships.png" rel="nofollow">https:&#x2F;&#x2F;www.evernote.com&#x2F;shard&#x2F;s3&#x2F;sh&#x2F;67c67a48-8b3d-4eac-b7ee...</a><p>[2] <a href="http://www.yworks.com/en/products_yed_about.html" rel="nofollow">http:&#x2F;&#x2F;www.yworks.com&#x2F;en&#x2F;products_yed_about.html</a>
solomatovabout 11 years ago
Actually we have a lot of such editors. For example, JetBrains, MPS (<a href="http://www.jetbrains.com/mps/" rel="nofollow">http:&#x2F;&#x2F;www.jetbrains.com&#x2F;mps&#x2F;</a>)<p>I am currently working on a web based version of such an editor at JetBrains. You can take a look at it here: <a href="http://jb-proj-demo.appspot.com/" rel="nofollow">http:&#x2F;&#x2F;jb-proj-demo.appspot.com&#x2F;</a> (It&#x27;s open source and it&#x27;s available on github here: <a href="https://github.com/JetBrains/jetpad-projectional" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;JetBrains&#x2F;jetpad-projectional</a>)
评论 #7514751 未加载
dfcabout 11 years ago
I am surprised that nobody has mentioned Tinderbox. It is an awesome mindmapping&#x2F;outlining application and one of the two applications that make me jealous of OSX users. (Bibdesk is the other)<p><a href="http://www.eastgate.com/Tinderbox/" rel="nofollow">http:&#x2F;&#x2F;www.eastgate.com&#x2F;Tinderbox&#x2F;</a>
评论 #7529918 未加载
评论 #7513977 未加载
VLMabout 11 years ago
Productivity problem because of degrees of freedom.<p>Hard to do without graphics, and once you introduce graphics, you end up with endless non-productive futzing by non-graphics artists trying to be amateur graphics artists with move this one pixel over to get an artistic look or whatever other graphical effect. Unfortunately the user isn&#x27;t a graphics artist and is theoretically hired to write code or memos or reviews, so they&#x27;re both working way out of their core competency AND usually not any good at graphics arts. And if you don&#x27;t allow hours of futzing, a competitor will, and you&#x27;ll be destroyed in the marketplace. People like futzing even if its by definition totally anti-productive, which isn&#x27;t all that weird given the popularity of the open plan office and so on.<p>Nothing is ever new in IT. In the early years of desktop publishing, productivity suffered dramatically because a simple memo meeting notice which took 10 minutes on typewriter and xerox, now took at least 3 hours of font selection (at least 6 different fonts and sizes per page) and endless clip art and at least 10 revisions to get it &quot;just right&quot;.
pwgabout 11 years ago
The author might be looking for Treesheets: <a href="http://strlen.com/treesheets/" rel="nofollow">http:&#x2F;&#x2F;strlen.com&#x2F;treesheets&#x2F;</a>
erikcwabout 11 years ago
It&#x27;s been a few years since I&#x27;ve played with it, but Leo[1] seems like it might be what the author is looking for. It&#x27;s even scriptable (in Python). Looks like it is actively maintained[2].<p><a href="http://leoeditor.com/" rel="nofollow">http:&#x2F;&#x2F;leoeditor.com&#x2F;</a><p><a href="https://github.com/leo-editor/leo-editor" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;leo-editor&#x2F;leo-editor</a>
评论 #7512894 未加载
todazarabout 11 years ago
I created GraphBin (<a href="http://graphbin.co" rel="nofollow">http:&#x2F;&#x2F;graphbin.co</a>) because my data structures and algorithms prof didn&#x27;t want us to hand draw graphs for assignments. I didn&#x27;t want to make them via paint either.<p>Maybe not a general purpose tree editor, but at least it&#x27;s helped me out so far :)
评论 #7513474 未加载
评论 #7513964 未加载
oeviabout 11 years ago
For general purpose graphical tree editing a tool like yED [1] might be the most flexible solution. yED&#x27;s native GraphML can be easily transformed into other XML-like Structures.<p>If you like a plain text solution the TGF Format might suit your needs. It can also be visualized and edited in yED but it&#x27;s very limited in its feature set.<p>A very nice and simple solution for visualization of small trees is to parse plain text with XSLT and transform it into SVG [2].<p>For are more programmable concept i would recommend to have a look at the combination of D3js [3] + JSON (or XML).<p>[1] <a href="http://www.yworks.com/en/products_yed_about.html" rel="nofollow">http:&#x2F;&#x2F;www.yworks.com&#x2F;en&#x2F;products_yed_about.html</a> [2] <a href="http://www.xml.com/lpt/a/1472" rel="nofollow">http:&#x2F;&#x2F;www.xml.com&#x2F;lpt&#x2F;a&#x2F;1472</a> [3] <a href="http://d3js.org" rel="nofollow">http:&#x2F;&#x2F;d3js.org</a>
hyp0about 11 years ago
We have file tree viewers, and standard GUI components like Java&#x27;s JTree.<p>I only skimmed, but the article didn&#x27;t seem to address the questions raised (&quot;why?&quot;), but instead described the problem and proposed solutions.<p>I think an answer to the question would be far more interesting and revealing... it might simply be that 1. it&#x27;s hard; and 2. text is far better at hierarchical structures. Like his examples, lisp, programming languages in general, arithmetic algebra.<p>So I think the hint is that the Human Processing System is adapted to handling hierarchical structures linguistically (i.e. symbolically: speech, writing, text). I suspect there is a very good and deep reason for this, to do with the kinds of operations (transformations) typically needed. But I don&#x27;t know what that reason is.
paul_milovanovabout 11 years ago
can&#x27;t believe nobody has mentioned org-mode yet.
评论 #7513065 未加载
评论 #7512811 未加载
评论 #7515883 未加载
评论 #7512604 未加载
评论 #7513311 未加载
bakulabout 11 years ago
Might be more fruitful to think of a graph or tree &quot;ecosystem&quot; rather than just an editor. For an ecosystem one can think of the following aspects:<p>- a representation that can be shared by various tools, possibly in parallel. Allow attaching arbitrary attributes<p>- ability to map between equivalent but different representations (adjacency matrix, node&#x2F;link&#x2F;port etc.)<p>- plugins that operate on a specific rep. and map to some visual representation<p>- a language for programmatic construction (or may be a library)<p>- efficient storage representation (one or more)<p>- communication protocol for sharing&#x2F;moving subgraphs<p>- key&#x2F;mouse bindings when viewed graphically<p>- macros&#x2F;functions to encapsulate useful patterns<p>- graph manipulation &amp; mapping tools (e.g. mapping a circuit schematic to a PCB, compiling, etc.)<p>[Sorry for the frequent editing - I was trying to get the list right. Still not quite right.]
aurelianitoabout 11 years ago
Another project related to the one propossed in this article is a diff-diff3-patch like program suite that can be used on trees. It would fit in a great way with version control systems and make them (more) aware of structural changes in changesets.<p>Imagine being able to dump plain-text files for real trees when diffing-merging. The way differences are shown to the user could be like a project i did a few years ago to show differences in graphs (applied to basic-blocks graphs). Here is the link: <a href="http://corelabs.coresecurity.com/index.php?module=Wiki&amp;action=view&amp;type=tool&amp;name=aureliax" rel="nofollow">http:&#x2F;&#x2F;corelabs.coresecurity.com&#x2F;index.php?module=Wiki&amp;actio...</a>
评论 #7512874 未加载
retrogradeorbitabout 11 years ago
I use treeline.<p><a href="http://sourceforge.net/projects/treeline/" rel="nofollow">http:&#x2F;&#x2F;sourceforge.net&#x2F;projects&#x2F;treeline&#x2F;</a>
评论 #7514090 未加载
mfenniakabout 11 years ago
Hm... I&#x27;ve been quite happy using an Open Source tool called FreeMind. It seems to be a &quot;tree editor&quot;, although I&#x27;m not sure it quite satisfies what this author is looking for.<p>Screenshot: <a href="http://freemind.sourceforge.net/wiki/index.php/File:FreeMind-computer-knowledge-080.png" rel="nofollow">http:&#x2F;&#x2F;freemind.sourceforge.net&#x2F;wiki&#x2F;index.php&#x2F;File:FreeMind...</a><p>Website: <a href="http://freemind.sourceforge.net/wiki/index.php/Main_Page" rel="nofollow">http:&#x2F;&#x2F;freemind.sourceforge.net&#x2F;wiki&#x2F;index.php&#x2F;Main_Page</a>
评论 #7512474 未加载
hyperion2010about 11 years ago
I have used yEd for a few years to do simple mind mapping with graphs. Not the best solution, but it works.
Areliusabout 11 years ago
The problem is that everybody has different goals in a tree editor. But the Sony ATF framework, has a lot of support for graph editing.<p><a href="https://github.com/SonyWWS/ATF" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;SonyWWS&#x2F;ATF</a><p>See many examples in the gallery: <a href="https://github.com/SonyWWS/ATF/wiki/ATF-Gallery" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;SonyWWS&#x2F;ATF&#x2F;wiki&#x2F;ATF-Gallery</a>
kazagistarabout 11 years ago
You say things like &quot;programming languages have an AST&quot;, but in reality, it is more like a couple of directed graphs over an AST in terms of the semantics. The AST is more an accident of how we compile, but syntax is still invalid if you fail to match types, which are context sensitive; all of the calls (and thus most of the meaning of a function) refers to these tables as well, and many nodes can share the same &quot;semantics&quot; subnode; and by far the most important part to us as while programming is the data flow, which is structured as an often cyclic directed graph. Really, the tree does not buy us much of anything in this case: modern editors tend to allow syntax aware edits and refactoring anyways, and coding structure dictates that your code &quot;look&quot; like the AST anyways with blocks and spacing and such.<p>Similarly, proofs are only treelike at a very small depth before becoming directed graphs, and most modern data stores like XML and JSON which form trees tend to have additional logical (if not formal) schemas that add complexity to the problem.
fcc3about 11 years ago
Ashton Tate made a tree editor called [Framework](<a href="http://en.wikipedia.org/wiki/Ashton-Tate#Framework" rel="nofollow">http:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Ashton-Tate#Framework</a>) which I used to write my thesis in the late 80s on a DOS machine. I loved it. It had intuitive keystrokes, using the numeric keypad to zoom in (+) and out (-) of the tree with an easy way to collapse the tree branches (enter).<p>Each frame held other frames, or could hold text, a spreadsheet or a database.<p>It wasn’t a DAG (directed acyclic graph) which was frustrating sometimes.<p>I think you could program leaves to link to other leaves, but I wasn’t any good at programming. It had its own programming language FRED.<p>The people who grokked it loved it.<p>I think there is still a [closed source](<a href="http://www.framework.com/" rel="nofollow">http:&#x2F;&#x2F;www.framework.com&#x2F;</a>) community supporting it, last time I looked.<p>I hope you will use markup with something like YAML or [JSON-LD](<a href="http://manu.sporny.org/2014/json-ld-origins-2/" rel="nofollow">http:&#x2F;&#x2F;manu.sporny.org&#x2F;2014&#x2F;json-ld-origins-2&#x2F;</a>) to store your links.
j2kunabout 11 years ago
It seems like he (or someone) could quickly code up a javascript demo of what he wants using D3.js. Maybe this is my excuse to learn D3.
评论 #7513473 未加载
评论 #7512886 未加载
adriano_fabout 11 years ago
This is pretty much exactly what we&#x27;re trying to achieve with Gingko.<p>It&#x27;s a full tree editor, that is being used for everything from PhD theses, to television screenplays.<p><a href="http://gingkoapp.com" rel="nofollow">http:&#x2F;&#x2F;gingkoapp.com</a> <a href="https://www.youtube.com/watch?v=egCKZHsICm8" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=egCKZHsICm8</a>
评论 #7516508 未加载
unfamiliarabout 11 years ago
I think text editors are a bad comparison because they do something a little different. They are not linked to a specific data structure, they are linked to a particular data type. All of the examples of how diverse text editors are (Latex, csv files, log files, etc) are completely different data structures but all are stored in the same data type -- plain text. You can easily edit tree data in text files as long as they are stored in a plain text encoding. Counterpart to text editors would be hex editors, and all of the above can be done in them if the original data was stored in a binary format.<p>Text editors are useful because standards have evolved with them. We have standards for trees - XML and JSON for example. CSV editors are useful because there are ways to convert other table data into CSV to work with. If you just allowed a tree editor like XCode&#x27;s plist editor to import other file types it would be the same situation.
ajarmstabout 11 years ago
I said I was jut going to ignore this downthread, but I just can&#x27;t help myself. Feel free to dismiss it as &quot;another emacs dweeb pointing out they&#x27;ve been using alien technology since the 1970s&quot;.<p><a href="http://orgmode.org/manual/Structure-editing.html" rel="nofollow">http:&#x2F;&#x2F;orgmode.org&#x2F;manual&#x2F;Structure-editing.html</a>
JoeAltmaierabout 11 years ago
Heck why don&#x27;t we have an xml editor, with syntax checking through a schema? This has been possible for a decade.
评论 #7514264 未加载
评论 #7512752 未加载
tavoeabout 11 years ago
I&#x27;m definitely thinking of making a graph based text editor.<p>I think I could work off of code-highlighting files to figure out where to break code out into different nodes.<p>Then, I would look for matching terms in each node, and make connections. Connections could also be made based on containment (part of a class, or a child function, or a where clause).<p>One hotkey to follow a connection to it&#x27;s destination (and select that node). Another to pull it in and make it share the screen with the current node (and select it). Pressing the &quot;pull in&quot; key would push a node off the screen if it were already on screen.<p>Of course, maybe you would only want to explode some of your code as nodes. You could highlight part of you file and hit &quot;explode&quot; to break it out into nodes for a minute.
galactusabout 11 years ago
Fargo is quite nice <a href="http://fargo.io/" rel="nofollow">http:&#x2F;&#x2F;fargo.io&#x2F;</a>
评论 #7512743 未加载
naragabout 11 years ago
I&#x27;m writing one. Inspiration from <a href="http://www.treepad.com/" rel="nofollow">http:&#x2F;&#x2F;www.treepad.com&#x2F;</a> I use Treepad for notes heavily. Now I want to be able to manipulate the tree programmatically.<p>Also it will serve for a html&#x2F;js workshop for kids. They have a hard time setting up and working with regular editors and the file system.<p>The program is general purpose (different kind of node can be handled with plugged-in &quot;drivers&quot;).<p>If you&#x27;re interested, drop me a mail.
rchabout 11 years ago
It&#x27;s ugly, but take a look at the HDF editor:<p><a href="http://www.hdfgroup.org/products/java/hdfview/" rel="nofollow">http:&#x2F;&#x2F;www.hdfgroup.org&#x2F;products&#x2F;java&#x2F;hdfview&#x2F;</a><p>There&#x27;s also:<p><a href="http://oboedit.org/" rel="nofollow">http:&#x2F;&#x2F;oboedit.org&#x2F;</a><p>The deficiencies in the generally available tools are obvious, but refined versions do exist here and there.
评论 #7520047 未加载
spankaleeabout 11 years ago
Sounds sort of like OmniOutliner with plugins.
评论 #7512473 未加载
bambaxabout 11 years ago
What about Workflowy (<a href="https://workflowy.com/" rel="nofollow">https:&#x2F;&#x2F;workflowy.com&#x2F;</a>)?
评论 #7518400 未加载
评论 #7512451 未加载
评论 #7513095 未加载
tonyedgecombeabout 11 years ago
I use a tree editor[1] in one of my products, it&#x27;s almost a graphical DSL, originally inspired by a now deceased product called FormScape.<p>[1]: <a href="http://www.folderagent.com/images/blog/fa-rules-tree.png" rel="nofollow">http:&#x2F;&#x2F;www.folderagent.com&#x2F;images&#x2F;blog&#x2F;fa-rules-tree.png</a>
kylloabout 11 years ago
For this purpose I like typing out YAML files in Sublime Text 2. It has syntax highlighting and a formatting plugin. YAML is much more concise and readable than XML and JSON, and many programming languages have libraries for parsing and deserializing it into an in-memory object.
tmcwabout 11 years ago
Because we don&#x27;t have a commonly-accepted tree file format, so an editor has nothing to edit.
评论 #7512547 未加载
评论 #7512960 未加载
BadassFractalabout 11 years ago
I&#x27;ve actually looked into the existence of quality JSON-editing tools that can deal with more than 2 dimensions and have not found anything good yet. Too bad, because excel&#x2F;csv can be pretty restrictive for certain types of data.
wslhabout 11 years ago
Have you seen Tom Sawyer software? components such as <a href="https://www.tomsawyer.com/products/layout/index.php" rel="nofollow">https:&#x2F;&#x2F;www.tomsawyer.com&#x2F;products&#x2F;layout&#x2F;index.php</a> (commercial).
scotty79about 11 years ago
What I&#x27;m looking for is a code editor that doesn&#x27;t let you edit text but rather the code tree. That prevents you from writing a code that is not a valid tree but doesn&#x27;t get in the way too much.
edwinyzhabout 11 years ago
Well, I used to develop MindVisualizer (<a href="http://innovationgear.com/mind-mapping-software/" rel="nofollow">http:&#x2F;&#x2F;innovationgear.com&#x2F;mind-mapping-software&#x2F;</a>)
clordabout 11 years ago
I have this crazy idea in the back of my mind to write a visual programming language based on Haskell, where shape and colour convey kind and type information. Still cooking that one.
panicabout 11 years ago
Maybe because we don&#x27;t have a general-purpose tree file format?
评论 #7513174 未加载
dm2about 11 years ago
Freemind might be similar to what you&#x27;re looking for.<p><a href="http://freemind.sourceforge.net/wiki/" rel="nofollow">http:&#x2F;&#x2F;freemind.sourceforge.net&#x2F;wiki&#x2F;</a>
mark_l_watsonabout 11 years ago
One of the best tree editors I have used (actually a graph editor) was built into the InterLisp-D programming environment on my Xerox Lisp Machine.
tunesmithabout 11 years ago
You might like Flying Logic (flyinglogic.com) .
mtdewcmuabout 11 years ago
A web browser is a GUI for viewing a directed graph, the web (vertices = pages, edges = hyperlinks). It&#x27;s quite popular.
q234about 11 years ago
nestgrid is a general purpose tree editor. Description, in-browser flash demo and desktop app installer are available at <a href="http://nestgrid.org" rel="nofollow">http:&#x2F;&#x2F;nestgrid.org</a><p>ETA: incidentally, architecturally it is structured for easy plugin &#x2F; &quot;script&quot; extensibility, like a low key emacs.
Myrthabout 11 years ago
What about hnb? <a href="http://hnb.sourceforge.net/" rel="nofollow">http:&#x2F;&#x2F;hnb.sourceforge.net&#x2F;</a>
sjtrnyabout 11 years ago
Well mathematically we represent trees with matrices. So anything that can edit tabular data can edit trees.
评论 #7512920 未加载
评论 #7512726 未加载
danielweberabout 11 years ago
There&#x27;s one for JQueryUi I&#x27;ve used and been pleased with, but damned if I can remember it now
talaketuabout 11 years ago
<a href="http://xanadu.com/zigzag/" rel="nofollow">http:&#x2F;&#x2F;xanadu.com&#x2F;zigzag&#x2F;</a>
leocabout 11 years ago
Let me get back to you on this... :)
quiksilver19about 11 years ago
askrafiki.com is a good example of a general purpose editor
arvidjabout 11 years ago