Comments (10)
Graphviz is extremely awesome. I prefer it to any other graph tool. I even want to create a tutorial repository to help other people learn it. đ
from graphvizer.
đ Hi, 3.0.0 has more features. I'm eager to release too, but before this, I still need to test it more carefully because the whole codebase is refactored. If everything is OK, I will push the v3.0.0 tag today or tomorrow.
from graphvizer.
Haha, no problem. I'm just excited.
from graphvizer.
I don't know if you knew this, but since v3211 (released 2019-10-01), there is now a "Build System" for Graphviz. [Edit: Sorry, only the Beta got the improvements]
- Ctrl+B to render a
png
image withdot
in the same folder.- On MacOS, use Cmd as usual.
- Ctrl+Shift+B to choose
svg
output or to use a different engine (neato
,twopi
, etc.). - Reports any syntax errors in the build output, and double-click navigates to the error location.
It's not as good as your awesome plugin, but it may help people with less demanding needs.
from graphvizer.
Thanks. I didn't know it before because my v3211 version doesn't have this graphviz build system by default and I have to add it manually from your pull request. It's indeed lightweight and easy to use. It seems you are also a Graphviz enthusiast. đ I never thought one can create a build system for Graphviz. This is really a new direction.
from graphvizer.
Thanks. I didn't know it before because my v3211 version doesn't have this graphviz build system by default and I have to add it manually from your pull request.
Oh no! I just looked for the next release after the PR was merged. I didn't know that the code didn't make it into that release. đŹ Sorry about that!
from graphvizer.
Hello, 3.0.0 has been released.
By the way, I find that it's very difficult to manage a large graph source file because dot language doesn't support variable definition. If I want to change some attribute values, I have to do a global replacing which is very bored and easy to make mistakes. A straightforward solution is use M4 macro preprocessor. So my next plan is to integrate GNU M4 Macro Syntax to extend the default dot grammar. This should be interesting.
from graphvizer.
from graphvizer.
Here are the four methods, with their good and bad attributes:
Change the builtin Graphviz package
This is opening a PR at sublimehq/Packages
with changes to add M4.
Pros
- All the code is in one place.
- Least effort required.
Cons
- The PR has maybe 30% chance of being accepted, because
- The builtin syntax is shared by lots of people, many of whom do not use the same macro system, and some of whom may use a conflicting macro syntax
Build your own Graphviz syntax
This is making a self-contained syntax file here in this repository that does not refer to the builtin package in any way.
Pros
- All of your code is in one place.
- No need for PRs---you can merge improvements immediately.
Cons
- Any improvements to the builtin package have to be added here, separately.
- Any improvements here are not available to the builtin packages.
(simple) Linked syntax
This is what I suggested above: You make a small syntax package that only defines the entry points for M4 and includes the main
context of the builtin package.
Pros
- Any change to the builtin repository is immediately mirrored to all of your package's users
- The Graphviz syntax is centralized.
- If someone else has a macro system that they like, they can do the same thing without worrying if the macro syntax conflicts.
Cons
- Places that embed wrapped Graphviz syntax (e.g. a loop) will include the main syntax scope, which might not be relevant in the place that the loop happens.
Complex Linked syntax
This is similar to the previous example, but instead of - include: scope:source.dot
, you append specific subscopes, like - include: scope:source.dot#brackets
. There is not a lot of complexity in the Graphviz syntax definition right now, but someone may change that someday. đ If you are interested in improving the builtin syntax definition to make it closer to the spec, we'd love to have your help!
Pros
- (Same as previous)
Cons
- Chopping up a syntax definition and reconstituting it can be tedious
from graphvizer.
Many thanks. This is really helpful. I'm not familiar with syntax definition, so it's impossible for me without your help to consider these aspects so detailed. I always think your avatar is familiar, but I don't remember where I saw it until I open the contributor list of Sublime Text syntax. I am already eager to implement new features, but for now, I have to learn some basic knowledge. Thanks again for your detailed explanation. đ
from graphvizer.
Related Issues (20)
- TimeoutExpired exception not found HOT 2
- The image file name should be consistent with the dot file name HOT 1
- Settings should take effect without restarting Sublime HOT 1
- Does not work on windows 10 HOT 5
- Navigating in image HOT 8
- ĺ˝ĺçćŹćŻĺŚćŻćä¸ćďź HOT 2
- Feature Request: Display Custom Images HOT 2
- ĺŽćść¸˛ććśďźćĽĺżčžĺşçĺ珌串ćéŽé˘ HOT 1
- Use the side-by-side settings editor HOT 2
- UTF8 text is not supported? HOT 3
- How to open graph in a Graphvizer Viewer window? HOT 4
- Unable to render images, Python and Permission errors? HOT 2
- ST4 "Go to Definition" and Theme Selection Disabled when Plugin Installed HOT 10
- Image not displaying when viewing HTML document in Chrome HOT 1
- Image has not been rendered HOT 1
- 'dot' is not recognized as an internal or external command HOT 6
- Queue being overflowed on frequent changes in source HOT 1
- 'Loading image...' gets displayed but no image gets displayed Mac OS High Sierra HOT 21
- Support PlantUML HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
đ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. đđđ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google â¤ď¸ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from graphvizer.