GithubHelp home page GithubHelp logo

ellisonleao / gruvbox.nvim Goto Github PK

View Code? Open in Web Editor NEW
1.6K 9.0 176.0 343 KB

Lua port of the most famous vim colorscheme

License: MIT License

Lua 99.62% Makefile 0.38%
neovim colorscheme lua gruvbox neovim-plugin neovim-plugins neovim-colorscheme

gruvbox.nvim's Introduction


gruvbox.nvim

Twitter Follow Made with Lua

A port of gruvbox community theme to lua with treesitter and semantic highlights support!

Prerequisites

Neovim 0.8.0+

Installing

Using packer

use { "ellisonleao/gruvbox.nvim" }

Using lazy.nvim

{ "ellisonleao/gruvbox.nvim", priority = 1000 , config = true, opts = ...}

Using vim-plug

Plug 'ellisonleao/gruvbox.nvim'

Basic Usage

Inside init.vim

set background=dark " or light if you want light mode
colorscheme gruvbox

Inside init.lua

vim.o.background = "dark" -- or "light" for light mode
vim.cmd([[colorscheme gruvbox]])

Configuration

Additional settings for gruvbox are:

-- Default options:
require("gruvbox").setup({
  terminal_colors = true, -- add neovim terminal colors
  undercurl = true,
  underline = true,
  bold = true,
  italic = {
    strings = true,
    emphasis = true,
    comments = true,
    operators = false,
    folds = true,
  },
  strikethrough = true,
  invert_selection = false,
  invert_signs = false,
  invert_tabline = false,
  invert_intend_guides = false,
  inverse = true, -- invert background for search, diffs, statuslines and errors
  contrast = "", -- can be "hard", "soft" or empty string
  palette_overrides = {},
  overrides = {},
  dim_inactive = false,
  transparent_mode = false,
})
vim.cmd("colorscheme gruvbox")

VERY IMPORTANT: Make sure to call setup() BEFORE calling the colorscheme command, to use your custom configs

Overriding

Palette

You can specify your own palette colors. For example:

require("gruvbox").setup({
    palette_overrides = {
        bright_green = "#990000",
    }
})
vim.cmd("colorscheme gruvbox")

Highlight groups

If you don't enjoy the current color for a specific highlight group, now you can just override it in the setup. For example:

require("gruvbox").setup({
    overrides = {
        SignColumn = {bg = "#ff9900"}
    }
})
vim.cmd("colorscheme gruvbox")

It also works with treesitter groups and lsp semantic highlight tokens

require("gruvbox").setup({
    overrides = {
        ["@lsp.type.method"] = { bg = "#ff9900" },
        ["@comment.lua"] = { bg = "#000000" },
    }
})
vim.cmd("colorscheme gruvbox")

Please note that the override values must follow the attributes from the highlight group map, such as:

  • fg - foreground color
  • bg - background color
  • bold - true or false for bold font
  • italic - true or false for italic font

Other values can be seen in synIDattr

gruvbox.nvim's People

Contributors

alex-w-k avatar bakageddy avatar cryptomilk avatar defman21 avatar diaoul avatar eeexun avatar ellisonleao avatar eriedaberrie avatar foxyseta avatar frrenzy avatar github-actions[bot] avatar lucastavaresa avatar m3at avatar mayrixon avatar mezdelex avatar mikesmithgh avatar mxdevmanuel avatar ouuan avatar saccarosium avatar seniormars avatar shellcode33 avatar sqve avatar stvhuang avatar symphorien avatar thallada avatar vihu avatar wuerfeldev avatar xeluxee avatar xenrox avatar xntebli 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

gruvbox.nvim's Issues

Add support for g:gruvbox_guisp_fallback

Are there any specific reasons why g:gruvbox_guisp_fallback isn't supported? I find it useful to color misspelled words in terminal neovim (currently the words are only underlined), but maybe I'm missing something.

Thanks for porting gruvbox to lua and adding support for treesitter!

No highlighting

I am not sure what is going wrong here, but I am not getting any of the colorscheme to work.

Expected Behavior

Highlighting should match (at least closely) to the gruvbox by Morhetz.
Morhetz/gruvbox (expected behavior):
gruvbox_original

Actual Behavior

I am not getting any correct highlighting with this plugin. I have tried using it both with and without tree sitter and termguicolors. I have also tried changing terminals; I have tried urxvt, xterm, and gnome-terminal. The behavior is identical across all 3. I have also verified that the colorscheme is being set to gruvbox through :colorscheme.
gruvbox_lua

Minimal Configuration to Reproduce

-- Auto install packer.nvim if not exists
local install_path = vim.fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'
if vim.fn.empty(vim.fn.glob(install_path)) > 0 then
  vim.api.nvim_command('!git clone https://github.com/wbthomason/packer.nvim '..install_path)
end

vim.cmd [[packadd packer.nvim]]

require('packer').startup(function()
  use 'wbthomason/packer.nvim' -- packer manages itself

  use {"npxbr/gruvbox.nvim", requires = {"rktjmp/lush.nvim"}}
  -- use 'morhetz/gruvbox' -- for comparison
  use {"nvim-treesitter/nvim-treesitter", run = ":TSUpdate"} -- smart syntax highlighting
end)

vim.o.background = 'dark'
vim.cmd([[colorscheme gruvbox]])

.vim colors looks strange

hey!
thanks for the plugin, it works great for me in lua/js/ts!
only issue is - its kinda seems a bit broken for .vim files, do you know why that could happen?
image

Breaking with latest lush.nvim

Hey πŸ‘‹πŸΌ,

Cheers for an awesome colorscheme! I just now ran an update and lush.nvim was updated. Since then gruvbox.nvim is broken and erroring with:

packer.nvim: Error running config for gruvbox.nvim: [string "..."]:0: Vim(lua):E5108: Error executing lua ...site/pack/packer/start/gru
vbox.nvim/lua/gruvbox/base.lua:2: module 'lush.hsl.convert' not found:
^Ino field package.preload['lush.hsl.convert']
^Ino file './lush/hsl/convert.lua'
^Ino file '/usr/share/luajit-2.0.5/lush/hsl/convert.lua'
^Ino file '/usr/local/share/lua/5.1/lush/hsl/convert.lua'
^Ino file '/usr/local/share/lua/5.1/lush/hsl/convert/init.lua'
^Ino file '/usr/share/lua/5.1/lush/hsl/convert.lua'
^Ino file '/usr/share/lua/5.1/lush/hsl/convert/init.lua'
^Ino file '/home/sqve/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/lush/hsl/convert.lua'
^Ino file '/home/sqve/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/lush/hsl/convert/init.lua'
^Ino file '/home/sqve/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/lush/hsl/convert.lua'
^Ino file '/home/sqve/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/lush/hsl/convert/init.lua'
^Ino file './lush/hsl/convert.so'
^Ino file '/usr/local/lib/lua/5.1/lush/hsl/convert.so'
^Ino file '/usr/lib/lua/5.1/lush/hsl/convert.so'
^Ino file '/usr/local/lib/lua/5.1/loadall.so'
^Ino file '/home/sqve/.cache/nvim/packer_hererocks/2.0.5/lib/lua/5.1/lush/hsl/convert.so'
^Ino file './lush.so'
^Ino file '/usr/local/lib/lua/5.1/lush.so'
^Ino file '/usr/lib/lua/5.1/lush.so'
^Ino file '/usr/local/lib/lua/5.1/loadall.so'

Problem with changing background color

Issue created, after reddit comment:

I like hard version of dark mode, but want to have black background.

vim.g.gruvbox_contrast_dark = "hard"
vim.cmd("let g:gruvbox_colors = { 'dark0_hard': ['#000000', 0] }")
vim.o.background = "dark"
vim.cmd([[colorscheme gruvbox]])

I tried also

vim.cmd("let g:gruvbox_colors = { 'bg0': ['#000000', 0] }")

But neither variant works. Is there working version of this command, or it's disable for your port (or is better way to do this with lua, than vim.cmd)?

vim.g.gruvbox_colors = "bg0: ['#000000', 0]"

Doesn't do anything either.

Use hsl("#...") to help your colourizer

Not really an issue, but I noticed on stream πŸ‘€ you were having trouble with :Lushify breaking your hexcode colourizer highlights.

This is because Lush (well, all colorschemes) having to clear all highlight groups to make sure your theme updates are applied cleanly. I wrote a possible solution for colorizer here: norcalli/nvim-colorizer.lua#35 but there hasn't been any movement in a few months.

Anyway,

If you pass your hexcodes to the HSL package, Lushify will correctly find and highlight them.

There shouldn't 🀞 be any real impact on your usage, Lush will recognize the type and anywhere else should just coerce it back into a hexcode string.

https://github.com/npxbr/gruvbox.nvim/blob/9813ffbcda1c5738fe59b7ebce605d826656d691/lua/gruvbox/init.lua#L5

-- grab hsl package
local hsl = lush.hsl

-- later
dark0_hard = hsl("#1d2021"),

I want to keep Lushify pretty focused which is why it will only colourise hsl(...) calls.

let g:gruvbox_bold = 0 caused error E418: Illegal value: blend=NONE

let g:gruvbox_bold = 0 caused error E418: Illegal value: blend=NONE

Error detected while processing /.local/share/nvim/plugged/gruvbox.nvim/colors/gruvbox.vim:
line    2:
E5108: Error executing lua ....local/share/nvim/plugged/lush.nvim/lua/lush.lua:62: Vim(highlight):E418: Illegal value: blend=NONE

the cause:

highlight TSStrong guifg=NONE guibg=NONE guisp=NONE gui= blend=NONE

highlight clojureRegexpCharClass guifg=#BDAF93 guibg=NONE guisp=NONE gui= blend=NONE

highlight htmlBold guifg=#EBDBB2 guibg=NONE guisp=NONE gui= blend=NONE

highlight WildMenu guifg=#83A598 guibg=#4F4945 guisp=NONE gui= blend=NONE

highlight Bold guifg=NONE guibg=NONE guisp=NONE gui= blend=NONE

highlight LspSagaRenameBorder guifg=NONE guibg=NONE guisp=NONE gui= blend=NONE

@npxbr maybe we should fix this in the upstream ?

https://github.com/rktjmp/lush.nvim/blob/8f03467d6dbb6c24cfa5ebe538ec873f9d4235bb/lua/lush/compiler.lua#L23

like this :

  local gui = opts.gui or 'NONE'
  gui = string.gsub(gui, ' ', '')
  if gui == '' then
	gui = 'NONE'
  end

ttys3/lush.nvim@34e2cf6

or ? we should not put gui to the highlight command if gui is empty string ?

Error while calling lua chunk

imagen
I was making my own Neovim config, and when installing gruvbox and setting it as a theme, when I open neovim, I get this message.

Make the colorscheme without requiring lush

Hi, I have loved this lua port very much. One think I would love to is to stop requiring lush for the colorscheme and making it a indenpendent lua port colorscheme. Was this topic ever been in your mind ?. Other than that I love it very much.
Thank you for your work. Have a nice day πŸ˜„

Incorrect init.vim usage example

The usage code from the readme does not seem to be correct:

set colorscheme=gruvbox

Should be

colorscheme gruvbox

Or am I missing something?

Support new Diagnostic highlight naming

πŸ‘‹πŸΌ

There's been some breaking changes to the diagnostics of neovim:master and the highlights are no longer named LspDiagnostics. The new name is Diagnostic, ie. DiagnosticSignError.

startify colorscheme weird

I've been porting all of my configs over to Lua from vimscript and was previously using the primary gruvbox plugin, which produced this color layout:

image

Now, when switching to this plugin as part of my overall process, the colors appear odd:

image

I've got some other plugins going on like nvim-treesitter, but I added startify to the exclusion list and it didn't seem to do anything; so, not sure what I'm missing. Maybe there's some dependency order conflict?

Setting background after startup does not change colors

Once Neovim is started, set background=light (or dark) seems to have no effect. With the original, you could live swap between light/dark by setting background in via the command line. Is this still possible to achieve, or do we need to take an alternative approach to swapping?

does not work if telescope not installed

E5108: Error executing lua /home/dch/.vim/plugged/gruvbox.nvim/lua/gruvbox/init.lua:846: module 'telescope.builtin' not found:
        no field package.preload['telescope.builtin']
        no file './telescope/builtin.lua'
        no file '/home/runner/work/neovim/neovim/.deps/usr/share/luajit-2.1.0-beta3/telescope/builtin.lua'
        no file '/usr/local/share/lua/5.1/telescope/builtin.lua'
        no file '/usr/local/share/lua/5.1/telescope/builtin/init.lua'
        no file '/home/runner/work/neovim/neovim/.deps/usr/share/lua/5.1/telescope/builtin.lua'
        no file '/home/runner/work/neovim/neovim/.deps/usr/share/lua/5.1/telescope/builtin/init.lua'
        no file './telescope/builtin.so'
        no file '/usr/local/lib/lua/5.1/telescope/builtin.so'
        no file '/home/runner/work/neovim/neovim/.deps/usr/lib/lua/5.1/telescope/builtin.so'
        no file '/usr/local/lib/lua/5.1/loadall.so'
        no file './telescope.so'
        no file '/usr/local/lib/lua/5.1/telescope.so'
        no file '/home/runner/work/neovim/neovim/.deps/usr/lib/lua/5.1/telescope.so'
        no file '/usr/local/lib/lua/5.1/loadall.so'

As at 9a5a039

colors in diffmode can be hard to see (depending on current syntax highlighting).

Hello!

When using the original gruvbox, diffs were very easy to see because of the background text changes. It was kinda ugly but very easy to see.

With this implementation the diffs have no background highlighting and are nuanced (this varies depending on what syntax highlighting is going on though). Sometimes its challenging to pick out the differences. It might be worth considering a change in background colors.

Thanks!

using Dictionary as a String

" init.vim
Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
Plug 'rktjmp/lush.nvim'
Plug 'npxbr/gruvbox.nvim'

set background=dark
colorscheme gruvbox

I encounter the following error

Error detected while processing /home/user/.local/share/nvim-nightly/plugged/gruvbox.nvim/colors/gruvbox.vim:
line    2:
E5108: Error executing lua Vim:E731: using Dictionary as a String

using nvim

NVIM v0.5.0-dev+1157-g0ab88c2ea
Build type: RelWithDebInfo
LuaJIT 2.1.0-beta3
Compilation: /usr/bin/cc -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -O2 -g -Og -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wmissing-prototypes -Wvla -fstack-protector-strong -fno-common -fdiagnostics-color=always -DINCL
UDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -DMIN_LOG_LEVEL=3 -I/home/runner/work/neovim/neovim/build/config -I/home/runner/work/neovim/neovim/src -I/home/runner/work/neovim/neovim/.deps/usr/include -I/usr/include -I/home/r
unner/work/neovim/neovim/build/src/nvim/auto -I/home/runner/work/neovim/neovim/build/include
Compiled by runner@fv-az36-335

Features: +acl +iconv +tui
See ":help feature-compile"

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/share/nvim"

Background of 'sign' is Highlighted

I am not sure if this is intended behavior or it's caused by signify plugin, but shouldn't the background of sign not be modified by themes.

This is what I get from gruvbox.nvim:
Screen Shot 2021-07-27 at 7 22 06 PM
As seen, the entire sign row/column has a lighter background where the git-add symbol is inserted!

This is the (correct?) behavior of snazzy theme:
Screen Shot 2021-07-27 at 7 24 18 PM

It this expected? any way of working around it?

Error when nvim-tree.lua is installed: "attempt to concatenate field 'fg' (a table value)"

Minimal init.vim:

packadd packer.nvim
lua << EOF
local plugins = require('packer').startup(function()
    use {'wbthomason/packer.nvim', opt = true}

    use {
        "npxbr/gruvbox.nvim",
        requires = {"rktjmp/lush.nvim"}
    }
    
    use {
        'kyazdani42/nvim-tree.lua',
        requires = 'kyazdani42/nvim-web-devicons',
    }
end)
EOF

When I run :colorscheme gruvbox I get the following error:

Error detected while processing ColorScheme Autocommands for "*":
E5108: Error executing lua ...pack/packer/start/nvim-tree.lua/lua/nvim-tree/colors.lua:77: attempt to concatenate field 'fg' (a table value)

Add support for gruvbox_sign_column

One thing missing for compatibility is g:gruvbox_sign_column. I personally prefer the sign column background to be bg0 rather than bg1, so I have this set. It's a bit of a hassle to go and set all the relevant sign highlight backgrounds to bg0.

Bland and little color variation for R syntax (.r files)

The gruvbox colorscheme displays bland colored syntax highlighting for the R language, .r files, compared to other colorschemes like the default colorscheme.

I have Treesitter set up and working as can be seen in the images, using Treesitter playground.

With default colorscheme syntax highlighting looks proper:

Screenshot from 2021-09-14 15-55-48

With gruvbox colorscheme the syntax highlighting looks bland, e.g. operators not colored and functions bold but not colored:
Screenshot from 2021-09-14 15-55-56

The gruvbox colorscheme is applied and works it seems, I just find it lacking compared to the syntax highlighting of other languages with gruvbox. Minimal init.vim file used for images: https://pastebin.com/AZQmRnmz

Is this how gruvbox is designed for R or is there something wrong with my setup? If this is just the way it is, can I specify a different gruvbox colorscheme only for .r files and if that's possible could someone point me in the right direction in doing so?

Lightline support not working

I saw your commit to add lightline support in 877451a

However, when I start vim, it tells me
lightline.vim: Could not load colorscheme gruvbox

I did a plugin update and verified in the folder that /lua/gruvbox/plugins/lightline.vim exists, and it's there.

Do I have to enable it somehow?

Typescript has lots of white with treesitter

In a typescript file, there are a lot of white colors, for all the characters below:

.
,
[
]
(
)
{
}
|

In the gruvbox community, that's more of a green and fits much nicer.

Is this intended?

setting variables `gruvbox_*` are useless when installed by packer.nvim

I just noticed in the settings.lua there is:

https://github.com/npxbr/gruvbox.nvim/blob/eb5e2ae8845969d1979de9df9481ae291a6ca321/lua/gruvbox/settings.lua#L36-L41

The code above will run immediately when the plugin is loaded.

When plugins is installed by packer.nvim, neovim will loaded plugins first, and ~/.config/nvim/init.lua will be loaded after that, so gruvbox.nvim read those variables before you can set them.
I'm not a expert of neovim, so maybe I'm wrong about that.

Performance comparison with VimL version

Using startuptime plugin, I compared the load time of Lua-based gruvbox to the community version:

  1. gruvbox.nvim
Slowest 10 plugins (out of 42)~
            [unknown]	47.137  
         gruvbox.nvim	18.072  
            [runtime]	12.338  
             coc.nvim	5.541   
  1. gruvbox-community
Slowest 10 plugins (out of 42)~
            [unknown]	47.240  
            [runtime]	12.291  
              gruvbox	8.288   
             coc.nvim	5.355   

Undefined function lightline#update

Starting up neovim with colorscheme gruvbox shows an error:

Error executing vim.schedule lua callback: Vim:E117: Unknown function: lightline#disable

I tried debugging this, but it has a super weird behavior. The error comes from this part:

  local has_lightline, _ = pcall(vim.fn["lightline#update"])
  if has_lightline then
    local ll_filled = vim.fn['lightline#colorscheme#fill'](lightline_theme)
    vim.g['lightline#colorscheme#gruvbox#palette'] = ll_filled
    vim.schedule(function()
      vim.fn['lightline#disable']()
      vim.fn['lightline#enable']()
    end)
  end

If I comment out the vim.schedule(…) call then I get no error. I also do not get the error if I manually invoke :colorscheme gruvbox after startup.

I do not have lightline installed and the lightline#update function is not defined after startup. But it seems like it is defined shortly between the code loading and the first scheduled callbacks executing.

Adding print calls does not help; it seems like this code is run twice where the first run is never actually logged.

I grepped all my installed plugins for lightline#update and this is the only match. I don't understand what could cause this, honestly. Perhaps vim.fn is in a weird state during startup…?

> nvim --version
NVIM v0.6.0-dev+390-g3beea1fe1

[General hint request] Some text has blurry font

Hi.
I's absolutely sure this is not the issue of this particular theme/plugin.
But me, and possible some other could find it helpful.
image
As you can see in the image, some symbols have blurry text, and i can't figure out what could cause that.
I am using Alacritty with Nerd Hack font size 9.0. Wayland/Sway.
No zooming applied. Even if i do apply zoom, it has no effect and some text is still blurry. I tried to change terminal font and it's size as well.
I believe it's could be related to subpixel rendering, but not fully sure.
Would be thankful for any hints. 😺

Missing terminal colors

Hi,

I noticed that terminal colors are missing (see :helpgrep terminal_color_).
I'm not sure if colorbuddy should provide that or not, but they are not defined at all.

Setting background to light

I'm having an issue where this plugin is setting my background to light.

I have a separate Lua file that sets the background with

vim.o.background = "dark"

If you eval this with :lua vim.o.background = "dark" it will correctly set the background to dark.

Removing this plugin and recompiling with packer, the background is correctly set to dark.

Everything after #if or #ifdef gets bold and and underlined in C

As soon as an #if or #ifdef comes in the code, treesitter is making everything bold and underlined with gruvbox theme:

neovim-treesitter-hightlighting

The C code is here:
https://git.samba.org/?p=samba.git;a=blob;f=source4/kdc/mit-kdb/kdb_samba_policies.c;h=9197551ed6198dd28ba3b9b39797926aeff2cf8c;hb=refs/heads/master#l290

To Reproduce

Steps to reproduce the behavior:

  1. Install nvim-treesitter and enable highlighting.
  2. Install and use gruvbox.nvim colorscheme
  3. Open C code with some #ifdef e.g. https://git.samba.org/?p=samba.git;a=blob;f=source4/kdc/mit-kdb/kdb_samba_policies.c;h=9197551ed6198dd28ba3b9b39797926aeff2cf8c;hb=refs/heads/master#l290

Expected behavior

Do not underline or make text bold as soon as the #if clause is over.

The issue doesn't happen with another colorscheme.

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.