GithubHelp home page GithubHelp logo

luochen1990 / rainbow Goto Github PK

View Code? Open in Web Editor NEW
1.8K 27.0 95.0 657 KB

Rainbow Parentheses Improved, shorter code, no level limit, smooth and fast, powerful configuration.

License: Apache License 2.0

C 0.88% CSS 0.18% Go 0.31% Haskell 0.57% HTML 2.82% JavaScript 0.64% PHP 1.72% Ruby 1.23% Shell 6.42% TeX 1.10% Stylus 0.18% Vim Script 81.51% Lua 1.81% Perl 0.61%
vim vim-plugin parentheses

rainbow's Introduction

Rainbow Parentheses Improved

help you read complex code by showing diff level of parentheses in diff color !!

As everyone knows, the most complex codes were composed of a mass of different kinds of parentheses (typically: lisp). This plugin will help you read these codes by showing different levels of parentheses in different colors. You can also find this plugin in www.vim.org.

lisp

lisp

html

html

What is improved ?

  • no limit of parentheses levels.
  • separately edit guifgs and ctermfgs (the colors used for highlighting).
  • now you can design your own parentheses such as 'begin' and 'end'.
  • you can also configure anything separately for different types of files.
  • now you can even decide to let some operators (like + - * / , ==) highlighted with the parentheses together.
  • dot separated combined filetype support (:h ft).
  • json style configuration used, more understandable and readable, easier for advanced configuration.
  • the code is shorter and easier to read now.
  • smoother and faster.
  • the Chinese document is added.

Referenced:

Install

install via Plug:

Plug 'luochen1990/rainbow'
let g:rainbow_active = 1 "set to 0 if you want to enable it later via :RainbowToggle

install manually:

  • first, execute the following commands (for windows users, use ~/vimfiles instead of ~/.vim)

     git clone https://github.com/luochen1990/rainbow.git
     cd rainbow
     mkdir -p ~/.vim/plugin ~/.vim/autoload
     cp plugin/* ~/.vim/plugin
     cp autoload/* ~/.vim/autoload
  • second, add the follow sentences to your .vimrc or _vimrc :

     let g:rainbow_active = 1 "set to 0 if you want to enable it later via :RainbowToggle
  • third, restart your vim and enjoy coding.

Configure

There is an example for advanced configuration, add it to your vimrc and edit it as you wish (just keep the format).

Note: you can remove these lines safely since they are all included by the source code).

let g:rainbow_conf = {
\	'guifgs': ['royalblue3', 'darkorange3', 'seagreen3', 'firebrick'],
\	'ctermfgs': ['lightblue', 'lightyellow', 'lightcyan', 'lightmagenta'],
\	'guis': [''],
\	'cterms': [''],
\	'operators': '_,_',
\	'parentheses': ['start=/(/ end=/)/ fold', 'start=/\[/ end=/\]/ fold', 'start=/{/ end=/}/ fold'],
\	'separately': {
\		'*': {},
\		'markdown': {
\			'parentheses_options': 'containedin=markdownCode contained', "enable rainbow for code blocks only
\		},
\		'lisp': {
\			'guifgs': ['royalblue3', 'darkorange3', 'seagreen3', 'firebrick', 'darkorchid3'], "lisp needs more colors for parentheses :)
\		},
\		'haskell': {
\			'parentheses': ['start=/(/ end=/)/ fold', 'start=/\[/ end=/\]/ fold', 'start=/\v\{\ze[^-]/ end=/}/ fold'], "the haskell lang pragmas should be excluded
\		},
\		'vim': {
\			'parentheses_options': 'containedin=vimFuncBody', "enable rainbow inside vim function body
\		},
\		'perl': {
\			'syn_name_prefix': 'perlBlockFoldRainbow', "solve the [perl indent-depending-on-syntax problem](https://github.com/luochen1990/rainbow/issues/20)
\		},
\		'stylus': {
\			'parentheses': ['start=/{/ end=/}/ fold contains=@colorableGroup'], "[vim css color](https://github.com/ap/vim-css-color) compatibility
\		},
\		'css': 0, "disable this plugin for css files
\		'nerdtree': 0, "rainbow is conflicting with NERDTree, creating extra parentheses
\	}
\}
  • 'guifgs': a list of guifg (:h highlight-guifg), i.e. colors for gui interface, will be used in order
  • 'guis': a list of gui (:h highlight-gui), will be used in order
  • 'ctermfgs': a list of ctermfg (:h highlight-ctermfg)
  • 'cterms': a list of cterm (:h highlight-cterm)
  • 'operators': describe the operators you want to highlight (note: be careful about special characters which needs escaping, you can find more examples here, and you can also read the vim help about syn-pattern). note that this option will be overwritten by the step part of parentheses.
  • 'parentheses': a list of parentheses definitions, a parentheses definition contains parts like start=/(/, step=/,/, stop=/)/, fold, contained, containedin=someSynNames, contains=@Spell, see :h syntax for more details. notice that the step part is defined by this plugin so it is not described by the official vim doc.
  • 'parentheses_options': parentheses options shared between different parentheses, things like containedin=xxxFuncBody, contains=@Spell (or 'contains=@NoSpell') often appears here. this option is often used to solve 3rd-party-plugin-compatibility problems.
  • 'separately': configure for specific filetypes (decided by &ft), key * for filetypes without separate configuration, value 0 means disable rainbow only for this type of files, value "default" means keep the default shim for this filetype (notice: the default shim config will change between plugin version).
  • 'syn_name_prefix': add a prefix to name of the syntax definition, this option is often used to solve 3rd-party-plugin-compatibility problems.
  • 'after': execute some vim commands after the rainbow syntax rules is defined. it is often used like ['syn clear xxx'] to solve 3rd-party-plugin-compatibility problems.
  • keep a field empty to use the default setting.

To get more advanced config examples, try to search throught this tag.

User Command

  • :RainbowToggle --you can use it to toggle this plugin.

3rd Party Plugin Compatibility

You should notice that this plugin is very special, Vim plugins is expected to provide syntax definitions vertically, i.e. one filetype, one syntax definition set:

----------------------------------------------------
|      cpp       |      java       |    python     |
|                |                 |               |
| syn cppKeyword | syn javaKeyword | syn pyKeyword |
| syn cppFunc    | syn javaFunc    | syn pyLambda  |
| syn cppParen   | syn javaParen   | syn pyParen   |
| ...            | ...             | ...           |
----------------------------------------------------

But this plugin provide syntax definitions horizontally, i.e. parentheses syntax for all filetypes:

----------------------------------------------------
|      cpp       |      java       |    python     |
|                |                 |               |
| syn cppKeyword | syn javaKeyword | syn pyKeyword |
| syn cppFunc    | syn javaFunc    | syn pyLambda  |
| ...            | ...             | ...           |
----------------------------------------------------
|                     rainbow                      |
|                                                  |
| syn cppRainbow   syn javaRainbow   syn pyRainbow |
----------------------------------------------------

You can notice that, to provide rainbow parentheses, this plugin have to define it's own syntax rules, and these rules will overwrite the parentheses syntax provided by the filetype plugin.

It works well at most of the time, but in some special cases, when the parentheses syntax rule is depended somewhere else (e.g. indent, spell checking, nested syntax rules), the things depend on the original syntax rules will be broken.

This plugin has provide some mechanisms to solve the compatibility problems, and have provided default configurations to solve compatibility problems with the default vim syntax files.

But if this plugin is conflicted with some other plugins, you will probably have to solve them by yourself. First, you can search on this issue tag to find whether there is somebody else had the same problem and solved it. Second, you can read the following content about troubleshooting.

Troubleshooting

  • rainbow doesn't work at all: find out the current parentheses syntax name, and use the after mechanism to clear these syntax.
  • rainbow doesn't work inside some structure: find out the syntax region name, and use the parentheses_options mechanism like 'containedin=xxx'.
  • spell checking doesn't work inside parentheses: use the parentheses_options mechanism like 'contains=@Spell'.
  • spell checking works inside parentheses but you don't want it: use the parentheses_options mechanism like 'contains=@NoSpell'.
  • indent not works correctly: check the indent script you are using and search synID inside it to find which syntax name prefix it depends on, and use the syn_name_prefix mechanism to solve it.

The following keymappings will help you to check the syntax name and definitions under the cursor, add them to your vimrc and restart vim:

nnoremap <f1> :echo synIDattr(synID(line('.'), col('.'), 0), 'name')<cr>
nnoremap <f2> :echo ("hi<" . synIDattr(synID(line("."),col("."),1),"name") . '> trans<'
\ . synIDattr(synID(line("."),col("."),0),"name") . "> lo<"
\ . synIDattr(synIDtrans(synID(line("."),col("."),1)),"name") . ">")<cr>
nnoremap <f3> :echo map(synstack(line('.'), col('.')), 'synIDattr(v:val, "name")')<cr>
nnoremap <f4> :exec 'syn list '.synIDattr(synID(line('.'), col('.'), 0), 'name')<cr>

Move your cursor to a parentheses and press the keys to use them.


**Rate this script if you like it, and I'll appreciate it and improve this plugin for you because of your support!

Just go to this page and choose Life Changing and click rate**

rainbow's People

Contributors

91khr avatar akashfoss avatar cpixl avatar crystalstiletto avatar docwhat avatar geometryolife avatar haifengkao avatar hoosieree avatar kushnee avatar laomafeima avatar luochen1990 avatar me-and avatar narimiran avatar peterdavehello avatar qifei9 avatar silentgray avatar spezifant avatar stephenprater avatar timsu92 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rainbow's Issues

vim 7.4 support ?

amazing work !
but with my vim 7.4 cause some error msg to console:

➜ muzhi_react2 git:(edge) ✗ Error detected while processing /Users/xieyiming/code/maximum-awesome/vim/bundle/rainbow/plugin/rainbow.vim:
line  112:
E122: Function rainbow#load already exists, add ! to replace it
line  123:
E122: Function rainbow#clear already exists, add ! to replace it
line  135:
E122: Function rainbow#show already exists, add ! to replace it
line  145:
E122: Function rainbow#hide already exists, add ! to replace it
line  157:
E122: Function rainbow#toggle already exists, add ! to replace it
line  171:
E122: Function rainbow#hook already exists, add ! to replace it

{,} - braces in LaTeX

The {,} - braces are common in LaTeX but missing in the configuration. Is there a special reason?

Rainbow disables Spellcheck in Latex

If

let g:rainbow_active = 1

and

set nocp
syn on
setlocal spell spelllang=en_us

then in the TeX document

\documentclass{article}
\begin{document}
This is junkk .  Loks like spell checkingx is woiking to mee!
% This is junkk .  Loks like spell checkingx is woiking to mee!
\end{document}

the spell checking is disabled, that is, no longer highlighted.

Uh oh... yet another spell checking problem

Well, here's a new one...

The latest commit –which fixes a problem with spell checking and plain text files– introduces a new bug where the @Spell syntax environments are messed up or something like that.

Specifically, in C files, variable names (outside comments) are now being highlighted when they shouldn't be.

It would seem that a simple fix for this is removing ,@NoSpell part of line 82 altogether:

-   let def_rg = 'syn region %s matchgroup=%s containedin=%s contains=%s,@NoSpell %s'
+   let def_rg = 'syn region %s matchgroup=%s containedin=%s contains=%s %s'

I'm not quite sure what problem it was supposed to solve in the first place but I'm not seeing any new problem yet.

Colors disappear after reloading vimrc.

Calling the command ":so $MYVIMRC" restore standard colors.
Calling then 2 times ":RainbowToggle" returns rainbow colors.
I tested this on Windows 7 for C++ and PHP.

Rainbow doesn't seem to work with PHP

Consider following example:

<?php
function test()
{
    return (((2))) + (((2)));
}

Rainbow doesn't highlight any of the parentheses. When changing syntax language to something else, it highlights parentheses automatically. When changing it back to PHP, it stops working again. Calling :RainbowToggle doesn't help.

Here's GIF that demonstrates this behavior:

issue

I thought there might be some manual configuration needed in order to get PHP to work. I was, however, unable to find any references to either Python or C++ in plugin sources, and both of these languages seem to work with no problems, so I guess the problem lies somewhere else.

Manual Install doesn't work

I did exactly what the manual installation says. I copied the file rainbow.vim to ~/.vim/plugin and added the sentence:

`let g:rainbow_active = 1
to .vimrc file. However, when I try to source the .vimrc file, I get an error:

syntax: command not found bash: let: g:rainbow_conf: syntax error in expression (error token is ":rainbow_conf")

Do you have an idea how to solve this problem?

BTW, I didn't install Vundle. That's why I used the manual installation.

Feature request.

I want plugin to be loaded on start
let g:rainbow_active = 1
but be disabled by default.
The way I want to use it is to only toggle it on when I need it.
Workarounds for this are possible, but it would be nice to cover this use case by default.

My propose is to add something like:
let g:rainbow_enabled = 0

Is there any easier way to make "advanced configure"?

I just want to know, if there any way can make 'Advanced configure' easier. For example, my vim have different color settings for different $TERM value:

if has('gui_running') || 'xterm-256color' == $TERM
  let g:rainbow_conf = extend({
  \   'guifgs' : ['#6A5ACD', '#B22222', '#C0FF3E', '#EEC900', '#9A32CD', '#EE7600', '#98fb98', '#686868'],
  \   'ctermfgs' : ['141', '196', '112', '208', '129', '166', '85', '237'],
  \}, exists('g:rainbow_conf')? g:rainbow_conf : {})
else
  let g:rainbow_conf = extend({
  \   'ctermfgs' = ['lightblue', 'lightgreen', 'yellow', 'red', 'magenta'],
  \}, exists('g:rainbow_conf')? g:rainbow_conf : {})
endif

However, there are many redundancy code in my configures.
Is there any way can make advanced setting as easier as this one (https://github.com/oblitum/rainbow#advanced-configuration)?

Advance configuration to match vim-niji's colors

Hi! Just found this plugin, and it looks super awesome.
Previously I was using amdt's niji plugin for rainbow parentheses, but he longer is maintaining it due to time constraints.

One thing I love is niji's highlighting colors, and I would love to replicate that in rainbow. But unfortunately, I couldn't figure out how to make a advance configuration to get it right. (I tried looking at #1, but I still couldn't figure it out.)

Can someone help me out?

As a reference, here is a vim-niji repository clone, https://github.com/raymond-w-ko/vim-niji, and I think the relevant highlight file: https://github.com/raymond-w-ko/vim-niji/blob/master/autoload/niji.vim

Thanks; I appreciate any help I get!

Doesn't work with neovims true color mode

Normal vim and nvim work as expected. When I enable neovims true color mode with NVIM_TUI_ENABLE_TRUE_COLOR=1 nvim it doesn't. junegunn/rainbow_parentheses.vim version works, but has no operator highlighting :(

Actions to alter operators unclear

Perhaps its my unfamiliarity with vimscript, but I'm attempting to add colons (":") to the list of operators, which by default only contains commas (","). The other options, ctermfgs, parentheses etc. are all arrayed, and easy to extend. However, any attempts I make at adding colons to a list of operators have failed. The :help :syn-pattern has not been of great assistance to me. Thanks for any advice you have.

How to disable highlights except parentheses?

The old version do not highlight so much by default, but this new version highlight:

  • if/else/endif et.al. in vim script files;
  • in html/xml files;
  • \begin{}\end{} groups in tex files;

But it seems none of those hightlight can be correct enough:

  • Highlight level breaks if there are elseif
  • Level breaks if there are some "bad" single tag like <BR> but not <BR/>
  • \begin \end highlight breaks the equation hightlighting by LaTeX-suite

So, is there anyway to turn those default actions off? I also think that these configure should not be set as default. :)

Parens for inline javascript callbacks are not highlighted properly

As per the below screenshot, anonymous javascript functions passed into a function call do not appear to have the parenthesis highlighted correctly. The closing parens are inverted from what they should be.
screen shot 2015-12-07 at 5 22 19 pm
This is a very common way to define callback functions in Node.

影响“=”缩进

启用之后,按=缩进格式的功能失效了,提示“缩进了xx行”,但实际没有缩进。

light colorscheme

There is an issue that when we use light colortheme, the brackets are not recognizable.
Here is my code for solving this. my code link

Could you add a "if" to recognize dark theme or light theme?
Thank you!

No operator highlighting outside of top-level parenthesis

Version 2.51.1 of rainbow parenthesis improved had operators outside of all parentheses get highlighted with the deepest parenthesis color(usually purple).

I just updated to the newest version(3.1.2) and found out this was removed( https://dl.dropboxusercontent.com/u/26359447/rainbows_in_python.png ). I'm not sure if that was intentional or not but I'd prefer it back in. I looked at the script to see if I could change it or re-enable it but couldn't find anything.

Note:

I changed the operators part of rainbow_conf to

\   'operators': '_,\|=\|+\|\*\|-\|\.\|;\||\|&\|?\|:\|<\|>\|%\|/[^/]_',

so i could get the default operator highlighting back that was in the old version. Not sure if that's the right way to do it but it seems to work

Feature Request: C++ Specific Highlighting

Hey @luochen1990 -

Really enjoying the plugin!

A couple of feature requests:

  1. It would be great if '<' and '>' could be highlighted correctly in C++. Kien's plugin is actually able to do this successfully, but it is no longer maintained.

Plugin: https://github.com/kien/rainbow_parentheses.vim

:RainbowParenthesesLoadChevrons " <>

The issue is that if I add them to this plugin, it gets confused in streams. Example:

std::cout << "This is a printout to standard out." << std::end;

This plugin will incorrectly interpret each '<' as an opening brace and assign it a different color.

  1. @oblitum's plugin (abandoned) also highlights namespace delimiters, which would be awesome to add to this. Specifically, I'm referring to the '::' operator.
     namespace top::next::name;
  1. Lastly, can you update the docs with an example of operator highlighting? I'm a bit confused regarding how to do that properly.

Again, these are all feature requests. Thanks for your hardwork @luochen1990!

Reloading vimrc deactivates rainbow highlighting

Hi luochen1990,

I have the plugin always enabled by setting g:rainbow_active:1 in my .vimrc. That works fine except when calling :so ~/.vimrc. It then removes the parentheses highlighting but somehow it appears that the plugin is still active since, to get them highlighted again I need to call RainbowToggle twice.

I have the same problem when calling vim -c "~/.vimrc_alt" to use a different vim config file.

I tried to figure out what's wrong, but I couldn't.

BTW, very cool plugin! I love it!

Thanks!

'*': 0 to disable for every filetype

Hi, thanks for rainbow.
I'm using it only for lisp-like languages. I know I can disable any type using 'the_type': 0, but would it be possible to just use '*': 0 for disabling everything, and leave a 'lisp': {} to let rainbow work for lisp-like languages ?

Conflicts with syntax regions within ()

When creating the syntax file for a Lisp I'm developing, I found that rainbow prevents this to be highlighted as a comment properly. Example VimL:

syntax region commie start="(;" end=";)"
highlight link commie Comment

The following should then be considered a comment:

(; foo ;)

After disabling this plugin, everything works as expected.

Plugin breaks neco-ghc

This plugin partially breaks neco-ghc which is a completion plugin for Haskell. The problem seems to be that rainbow fiddles with the syntax IDs (as returned by synIDattr()) which breaks the completion engine in some circumstances. Specifically, when completing language pragma directives which look like this:

{-# LANGUAGE OverloadedStrings #-}

This is a comment in Haskell (with a special metaformat because it's also a compiler pragma directive) and neco-ghc expects synIDAttr to return hsPragma here, but with rainbow turned on it returns rainbow_r0 (I'm guessing because it contains braces).

I'm not sure if this is fixable or even worth fixing, since it works if you disable this plugin on braces for Haskell (and braces are used sparingly there), but I thought I'd let you and others know, in case someone has a similar problem. Feel free to close the issue if there is nothing to be done.

Disabling folding in configuration doesn't seem to work

Hi, there seems to be a problem with folding, especially with multi-line expressions.

No folding involved:

void foo(int a, int b)
{
}

Whereas the next two lines are folded:

void some_long_function(long_param p1,
                                          long_param p2)
{
}

Same thing when I tried to configure rainbow in my vimrc, I surely did something wrong:

let g:rainbow_conf = {'separately': 
                                      {'vim':
                                             {'parentheses': ['start=/(/ end=/)/', 'start=/\[/ end=/\]/', 'start=/{/ end=/}/'],},
                                      }
                                  }

Thanks !

Extend '*': 0 by inheriting default options.

Usecase:
I want use plugin only for lisp, vimscript and zsh.
If I disable for all by let g:rainbow_conf = {'separately': {'*': 0, 'lisp':{}, ...}}, then I need to copypaste whole definition for vimscript, bloating my vimrc.

Currently there are two possible cases:
'*': {} -- apply default config to all filetypes (user's specified and default for plugin)
'*': 0 -- don't apply to any, beside specified in user's g:rainbow_conf.separately
Therefore there are no case to disable for all types beside user, but inherit all defaults from plugin.
Maybe, by specifying '*': 1 we could inherit all default types, but disable for all other filetypes?
Then one could disable, as example, only xml and css by inserting '*': 1, 'xml': 0, 'css': 0.
And by specifying '*': 0, 'xhtml': 1 one could inherit definitions only for xhtml?

Distinct value 1 is necessary, because we must distinguish cases when we inherit general common profile by 'lisp': {}, or inherit specific default config from plugin by 'lisp': 1. Otherwise we lose ability to overwrite default plugin config by its general settings -- like resetting default values for css: 'css': {}.

Enable only for certain filetypes?

Is it possible to enable rainbow only for certain filetypes (described in separately key) and, consequently, disable for everything else?

RainbowToggleOn results in errors on non-standard file loads

I have a autocmd to enable rainbow toggle with RainbowToggleOn on all my files when the buffer is enabled. This usually works when loading files with CtrlP, NerdTree, or the command line, but I've come across some edge cases where a large amount of errors get dumped to the screen during the autocmd. Right now it happens when I load a new file with vim-fugitve :Gedit.

After more testing, the errors go away in the buffer after I call RainbowToggle. I wonder if there is some initialization code that is only run during RainbowToggle that is being bypassed when only RainbowToggleOn in called.

Rainbow stops CSS highlighting

I have syntax on in my .vimrc and I'm using hemisu color scheme. After installing rainbow, syntax highlighting for CSS files is gone - I need to manually enable it when I open them by typing :syntax on.

issue

Other files, like .php and .cpp, work correctly.

Any chance to make it background and not breaking syntax hi?

Hi LuoChen,

I like this plugin very much. Yet I would like to preserve syntax highlight, especially for the html case.

There are some hints I can find in STO
http://stackoverflow.com/questions/7033310/vim-custom-syntax-highlighting-background-only

But I am just not being patient enough to figure how to modify your "match" template.

At this moment I just tweak ctermfg to ctermbg as in
https://gist.github.com/bencrox/44e68ee8eb476e50ac45

Any idea ?

@bencrox

Plugin breaks ai

autoindent deactivates when this plugin gets activated.
Steps to reproduce:

  1. Add let g:rainbow_active = 1 to .vimrc
  2. Open a file, say controller.php
  3. Create a class, open a curly brace then hit enter
  4. Cursor should be indented but it's not
  5. You have to :set ai or :set autoindent to make it work again although it's already in .vimrc
  6. Setting rainbow_active to 0 seems to temporarily fix the issue

linux 下目录位置有些不同

我的系统为archlinux,vim版本为7.4,按照说明文档放置插件与配置未生效。
但是把rainbow.vim放到/usr/share/vim/vim74/plugin下,并且将所有配置写到/etc/vimrc下就生效了。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.