Created
August 20, 2017 20:16
-
-
Save tanis2000/ce90baa791b1ee7d1a6b7662840db9e3 to your computer and use it in GitHub Desktop.
RLS log from the VSCode extension
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
DEBUG:rls::server: Language Server Starting up | |
TRACE:rls::server: reading: 1288 bytes | |
TRACE:rls::server: parse_message `{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"processId":13915,"rootPath":"/Users/tanis/Documents/minigame-rust","rootUri":"file:///Users/tanis/Documents/minigame-rust","capabilities":{"workspace":{"applyEdit":true,"workspaceEdit":{"documentChanges":true},"didChangeConfiguration":{"dynamicRegistration":false},"didChangeWatchedFiles":{"dynamicRegistration":true},"symbol":{"dynamicRegistration":true},"executeCommand":{"dynamicRegistration":true}},"textDocument":{"synchronization":{"dynamicRegistration":true,"willSave":true,"willSaveWaitUntil":true,"didSave":true},"completion":{"dynamicRegistration":true,"completionItem":{"snippetSupport":true}},"hover":{"dynamicRegistration":true},"signatureHelp":{"dynamicRegistration":true},"references":{"dynamicRegistration":true},"documentHighlight":{"dynamicRegistration":true},"documentSymbol":{"dynamicRegistration":true},"formatting":{"dynamicRegistration":true},"rangeFormatting":{"dynamicRegistration":true},"onTypeFormatting":{"dynamicRegistration":true},"definition":{"dynamicRegistration":true},"codeAction":{"dynamicRegistration":true},"codeLens":{"dynamicRegistration":true},"documentLink":{"dynamicRegistration":true},"rename":{"dynamicRegistration":true}}},"initializationOptions":{"omitInitBuild":true},"trace":"off"}}` | |
TRACE:rls::server: Handling Initialize (0) (params: InitializeParams { process_id: Some(13915), root_path: Some("/Users/tanis/Documents/minigame-rust"), root_uri: Some("file:///Users/tanis/Documents/minigame-rust"), initialization_options: Some(Object({"omitInitBuild": Bool(true)})), capabilities: ClientCapabilities { workspace: Some(WorkspaceClientCapabilites { apply_edit: Some(true), workspace_edit: Some(WorkspaceEditCapability { document_changes: Some(true) }), did_change_configuration: Some(GenericCapability { dynamic_registration: Some(false) }), did_change_watched_files: Some(GenericCapability { dynamic_registration: Some(true) }), symbol: Some(GenericCapability { dynamic_registration: Some(true) }), execute_command: Some(GenericCapability { dynamic_registration: Some(true) }) }), text_document: Some(TextDocumentClientCapabilities { synchronization: Some(SynchronizationCapability { dynamic_registration: Some(true), will_save: Some(true), will_save_wait_until: Some(true), did_save: Some(true) }), completion: Some(CompletionCapability { dynamic_registration: Some(true), completion_item: Some(CompletionItemCapability { snippet_support: Some(true) }) }), hover: Some(GenericCapability { dynamic_registration: Some(true) }), signature_help: Some(GenericCapability { dynamic_registration: Some(true) }), references: Some(GenericCapability { dynamic_registration: Some(true) }), document_highlight: Some(GenericCapability { dynamic_registration: Some(true) }), document_symbol: Some(GenericCapability { dynamic_registration: Some(true) }), formatting: Some(GenericCapability { dynamic_registration: Some(true) }), range_formatting: Some(GenericCapability { dynamic_registration: Some(true) }), on_type_formatting: Some(GenericCapability { dynamic_registration: Some(true) }), definition: Some(GenericCapability { dynamic_registration: Some(true) }), code_action: Some(GenericCapability { dynamic_registration: Some(true) }), code_lens: Some(GenericCapability { dynamic_registration: Some(true) }), document_link: Some(GenericCapability { dynamic_registration: Some(true) }), rename: Some(GenericCapability { dynamic_registration: Some(true) }) }), experimental: None }, trace: Off }) | |
TRACE:rls::server: response: "Content-Length: 500\r\n\r\n{\"jsonrpc\":\"2.0\",\"id\":0,\"result\":{\"capabilities\":{\"textDocumentSync\":2,\"hoverProvider\":true,\"completionProvider\":{\"resolveProvider\":true,\"triggerCharacters\":[\".\",\":\"]},\"definitionProvider\":true,\"referencesProvider\":true,\"documentHighlightProvider\":true,\"documentSymbolProvider\":true,\"workspaceSymbolProvider\":true,\"codeActionProvider\":true,\"documentFormattingProvider\":true,\"documentRangeFormattingProvider\":false,\"renameProvider\":true,\"executeCommandProvider\":{\"commands\":[\"rls.applySuggestion\"]}}}}" | |
TRACE:rls::actions: init: InitializationOptions { omit_init_build: true } | |
TRACE:rls::server: reading: 52 bytes | |
TRACE:rls::server: parse_message `{"jsonrpc":"2.0","method":"initialized","params":{}}` | |
TRACE:rls::server: Handling Initialized (params: "") | |
TRACE:rls::server: response: "Content-Length: 259\r\n\r\n{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"client/registerCapability\",\"params\":{\"registrations\":[{\"id\":\"rls-watch\",\"method\":\"workspace/didChangeWatchedFiles\",\"registerOptions\":{\"watchers\":[{\"globPattern\":\"/Users/tanis/Documents/minigame-rust/Cargo{.toml,.lock}\"}]}}]}}" | |
TRACE:rls::server: reading: 76 bytes | |
TRACE:rls::server: parse_message `{"jsonrpc":"2.0","method":"$/setTraceNotification","params":{"value":"off"}}` | |
TRACE:rls::server: parsing invalid message: None | |
TRACE:rls::server: reading: 554 bytes | |
TRACE:rls::server: parse_message `{"jsonrpc":"2.0","method":"workspace/didChangeConfiguration","params":{"settings":{"rust":{"sysroot":null,"target":null,"rustflags":null,"clear_env_rust_log":true,"build_lib":false,"build_bin":null,"cfg_test":false,"unstable_features":false,"wait_to_build":500,"show_warnings":true,"goto_def_racer_fallback":false,"use_crate_blacklist":true,"build_on_save":false,"workspace_mode":true,"analyze_package":null,"rustup":{"toolchain":"stable-x86_64-apple-darwin","nightlyToolchain":"nightly-x86_64-apple-darwin"},"mode":"legacy","rls":{"useRustfmt":true}}}}}` | |
TRACE:rls::server: Handling WorkspaceChangeConfiguration (params: DidChangeConfigurationParams { settings: Object({"rust": Object({"analyze_package": Null, "build_bin": Null, "build_lib": Bool(false), "build_on_save": Bool(false), "cfg_test": Bool(false), "clear_env_rust_log": Bool(true), "goto_def_racer_fallback": Bool(false), "mode": String("legacy"), "rls": Object({"useRustfmt": Bool(true)}), "rustflags": Null, "rustup": Object({"nightlyToolchain": String("nightly-x86_64-apple-darwin"), "toolchain": String("stable-x86_64-apple-darwin")}), "show_warnings": Bool(true), "sysroot": Null, "target": Null, "unstable_features": Bool(false), "use_crate_blacklist": Bool(true), "wait_to_build": Number(PosInt(500)), "workspace_mode": Bool(true)})}) }) | |
TRACE:rls::actions: config change: Object({"rust": Object({"analyze_package": Null, "build_bin": Null, "build_lib": Bool(false), "build_on_save": Bool(false), "cfg_test": Bool(false), "clear_env_rust_log": Bool(true), "goto_def_racer_fallback": Bool(false), "mode": String("legacy"), "rls": Object({"useRustfmt": Bool(true)}), "rustflags": Null, "rustup": Object({"nightlyToolchain": String("nightly-x86_64-apple-darwin"), "toolchain": String("stable-x86_64-apple-darwin")}), "show_warnings": Bool(true), "sysroot": Null, "target": Null, "unstable_features": Bool(false), "use_crate_blacklist": Bool(true), "wait_to_build": Number(PosInt(500)), "workspace_mode": Bool(true)})}) | |
TRACE:rls::server: response: "Content-Length: 72\r\n\r\n{\"jsonrpc\":\"2.0\",\"method\":\"rustDocument/diagnosticsBegin\",\"params\":null}" | |
TRACE:rls::build: request_build Cargo | |
TRACE:rls::server: response: "Content-Length: 165\r\n\r\n{\"jsonrpc\":\"2.0\",\"id\":2,\"method\":\"client/unregisterCapability\",\"params\":{\"unregisterations\":[{\"id\":\"rls-range-formatting\",\"method\":\"textDocument/rangeFormatting\"}]}}" | |
TRACE:rls::build: run_build, "/Users/tanis/Documents/minigame-rust" Cargo | |
TRACE:rls::build: running build | |
TRACE:rls::build::cargo: root manifest_path: "/Users/tanis/Documents/minigame-rust/Cargo.toml" | |
TRACE:rls::build::cargo: Cargo compilation options: | |
CargoOptions { package: [], target: None, lib: false, bin: [], bins: false, all: true, exclude: [] } | |
TRACE:rls::server: reading: 16587 bytes | |
TRACE:rls::server: parse_message `{"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"uri":"file:///Users/tanis/Documents/minigame-rust/src/engine.rs","languageId":"rust","version":1,"text":"#[cfg(feature = \"hotload\")]\nextern crate dynamic_reload;\n\nextern crate sdl2;\nextern crate cgmath;\nextern crate rand;\nextern crate imgui;\n\n//#[cfg(not(feature = \"hotload\"))]\n//extern crate minigame;\n\n#[cfg(feature = \"hotload\")]\nuse dynamic_reload::{DynamicReload, Lib, Symbol, Search, PlatformName, UpdateState};\n#[cfg(feature = \"hotload\")]\nuse std::rc::Rc;\nuse std::time::Duration;\nuse std::thread;\nuse std::str;\nuse std::ffi::CString;\nuse std::ptr;\nuse std::mem;\nuse std::path::Path;\nuse std::cell::RefCell;\nuse sdl2::image::{LoadTexture, INIT_PNG, INIT_JPG};\nuse sdl2::pixels::Color as SdlColor;\nuse sdl2::event::Event;\nuse sdl2::keyboard::Keycode;\nuse sdl2::render::TextureCreator;\nuse sdl2::render::Texture as SdlTexture;\nuse sdl2::video::WindowContext;\nuse rand::Rng;\nuse imgui::*;\n\n#[cfg(not(feature = \"hotload\"))]\nuse test_shared::shared_fun;\n\nuse spritebatch::SpriteBatch;\nuse spritebatch::SpriteSortMode;\nuse color::Color;\nuse texture::Texture;\nuse texturemanager::TextureManager;\nuse shader::Shader;\nuse camera::Camera;\nuse viewportadapter::ScalingViewportAdapter;\nuse viewportadapter::ViewportAdapterTrait;\nuse scene::Scene;\nuse imagecomponent::ImageComponent;\nuse log::Log;\nuse self::cgmath::Vector2;\nuse self::cgmath::Matrix4;\nuse self::cgmath::One;\n\npub mod gl {\n include!(concat!(env!(\"OUT_DIR\"), \"/bindings.rs\"));\n}\nuse self::gl::types::*;\n\n#[cfg(feature = \"hotload\")]\nstruct Plugins {\n plugins: Vec<Rc<Lib>>,\n}\n\n#[cfg(feature = \"hotload\")]\nimpl Plugins {\n fn add_plugin(&mut self, plugin: &Rc<Lib>) {\n self.plugins.push(plugin.clone());\n }\n\n fn unload_plugins(&mut self, lib: &Rc<Lib>) {\n for i in (0..self.plugins.len()).rev() {\n if &self.plugins[i] == lib {\n self.plugins.swap_remove(i);\n }\n }\n }\n\n fn reload_plugin(&mut self, lib: &Rc<Lib>) {\n Self::add_plugin(self, lib);\n }\n\n // called when a lib needs to be reloaded.\n fn reload_callback(&mut self, state: UpdateState, lib: Option<&Rc<Lib>>) {\n match state {\n UpdateState::Before => Self::unload_plugins(self, lib.unwrap()),\n UpdateState::After => Self::reload_plugin(self, lib.unwrap()),\n UpdateState::ReloadFailed(_) => Log::error(\"Failed to reload\"),\n }\n }\n}\n\nfn find_sdl_gl_driver() -> Option<u32> {\n for (index, item) in sdl2::render::drivers().enumerate() {\n sdl2::log::log(item.name);\n if item.name.contains(\"opengl\") {\n sdl2::log::log(\"Driver chosen follows\");\n sdl2::log::log(item.name);\n return Some(index as u32);\n }\n }\n sdl2::log::log(\"No OpenGL driver chosen\");\n None\n}\n\n// Vertex data\nstatic VERTEX_DATA: [GLfloat; 6] = [0.0, 0.5, 0.5, -0.5, -0.5, -0.5];\n\n// Shader sources\n#[cfg(any(target_os=\"android\", target_os=\"ios\"))]\nfn precision() -> String {\n String::from(\"precision mediump float;\\n\")\n}\n\n#[cfg(not(any(target_os=\"android\", target_os=\"ios\")))]\nfn precision() -> String {\n String::from(\"\")\n}\n\nstatic VS_SRC: &'static str = \"\\n\\\n attribute vec2 position;\\n\\\n varying vec4 color;\\n\\\n void main() {\\n\\\n gl_Position = vec4(position, 0.0, 1.0);\\n\\\n color = vec4(1.0, 1.0, 1.0, 1.0);\\n\\\n gl_PointSize = 1.0;\\n\\\n }\";\n\nstatic FS_SRC: &'static str = \"\\n\\\n varying vec4 color;\\n\\\n void main() {\\n\\\n gl_FragColor = color;\\n\\\n }\";\n\npub fn foo() {\n \n}\n\nfn compile_shader(src: &str, ty: GLenum) -> GLuint {\n let shader;\n unsafe {\n shader = gl::CreateShader(ty);\n // Attempt to compile the shader\n let c_str = CString::new(src.as_bytes()).unwrap();\n gl::ShaderSource(shader, 1, &c_str.as_ptr(), ptr::null());\n gl::CompileShader(shader);\n\n // Get the compile status\n let mut status = gl::FALSE as GLint;\n gl::GetShaderiv(shader, gl::COMPILE_STATUS, &mut status);\n\n // Fail on error\n if status != (gl::TRUE as GLint) {\n let mut len = 0;\n gl::GetShaderiv(shader, gl::INFO_LOG_LENGTH, &mut len);\n let mut buf = Vec::with_capacity(len as usize);\n buf.set_len((len as usize) - 1); // subtract 1 to skip the trailing null character\n gl::GetShaderInfoLog(shader,\n len,\n ptr::null_mut(),\n buf.as_mut_ptr() as *mut GLchar);\n panic!(\"{}\",\n str::from_utf8(&buf)\n .ok()\n .expect(\"ShaderInfoLog not valid utf8\"));\n }\n }\n shader\n}\n\nfn link_program(vs: GLuint, fs: GLuint) -> GLuint {\n unsafe {\n let program = gl::CreateProgram();\n gl::AttachShader(program, vs);\n gl::AttachShader(program, fs);\n gl::LinkProgram(program);\n // Get the link status\n let mut status = gl::FALSE as GLint;\n gl::GetProgramiv(program, gl::LINK_STATUS, &mut status);\n\n // Fail on error\n if status != (gl::TRUE as GLint) {\n let mut len: GLint = 0;\n gl::GetProgramiv(program, gl::INFO_LOG_LENGTH, &mut len);\n let mut buf = Vec::with_capacity(len as usize);\n buf.set_len((len as usize) - 1); // subtract 1 to skip the trailing null character\n gl::GetProgramInfoLog(program,\n len,\n ptr::null_mut(),\n buf.as_mut_ptr() as *mut GLchar);\n panic!(\"{}\",\n str::from_utf8(&buf)\n .ok()\n .expect(\"ProgramInfoLog not valid utf8\"));\n }\n program\n }\n}\n\n#[cfg(feature = \"hotload\")]\nfn plugin_load<'a>() -> (Plugins, DynamicReload<'a>) {\n // Setup the reload handler. A temporary directory will be created inside the target/debug\n // where plugins will be loaded from. That is because on some OS:es loading a shared lib\n // will lock the file so we can't overwrite it so this works around that issue.\n let mut reload_handler = DynamicReload::new(Some(vec![\"target/debug\"]),\n Some(\"target/debug\"),\n Search::Default);\n let mut plugs = Plugins { plugins: Vec::new() };\n\n // test_shared is generated in build.rs\n match reload_handler.add_library(\"test_shared\", PlatformName::Yes) {\n Ok(lib) => plugs.add_plugin(&lib),\n Err(e) => {\n //Log::error(\"Unable to load dynamic lib, err {:?}\", e);\n return (plugs, reload_handler);\n }\n }\n\n (plugs, reload_handler)\n}\n\n#[cfg(not(feature = \"hotload\"))]\nfn plugin_load() -> (i32, i32) {\n (0, 0)\n}\n\n#[cfg(feature = \"hotload\")]\nfn plugin_update<'a>(mut plugs: &mut Plugins, mut reload_handler: &mut DynamicReload<'a>) {\n reload_handler.update(Plugins::reload_callback, &mut plugs);\n\n if plugs.plugins.len() > 0 {\n // In a real program you want to cache the symbol and not do it every time if your\n // application is performance critical\n let fun: Symbol<extern \"C\" fn() -> i32> =\n unsafe { plugs.plugins[0].lib.get(b\"shared_fun\\0\").unwrap() };\n\n //Log::info(\"Value {}\", fun());\n }\n}\n\n#[cfg(not(feature = \"hotload\"))]\nfn plugin_update(mut plugs: &mut i32, mut reload_handler: &mut i32) {\n //Log::info(\"Value {}\", shared_fun());\n}\n\npub struct Engine {\n}\n\nimpl Engine {\n pub fn new() -> Self {\n Engine {\n }\n }\n\n //#[cfg(feature = \"hotload\")]\n pub fn run_loop(&mut self) {\n let (mut plugs, mut reload_handler) = plugin_load();\n\n // Init SDL2\n let sdl_context = sdl2::init().unwrap();\n let video_subsystem = sdl_context.video().unwrap();\n\n let window = video_subsystem\n .window(\"minigame-rust\", 800, 600)\n .position_centered()\n .opengl()\n .build()\n .unwrap();\n\n sdl2::log::log(\"Looking for OpenGL drivers\");\n let mut canvas = window\n .into_canvas()\n .index(find_sdl_gl_driver().unwrap())\n .build()\n .unwrap();\n\n sdl2::log::log(\"Loading GL extensions\");\n gl::load_with(|s| video_subsystem.gl_get_proc_address(s) as *const _);\n sdl2::log::log(\"Setting current GL context\");\n canvas.window().gl_set_context_to_current();\n\n // Create GLSL shaders\n /*\n sdl2::log::log(\"Compiling vertex shader\");\n let vs_src = precision()+VS_SRC;\n let vs = compile_shader(&vs_src, gl::VERTEX_SHADER);\n sdl2::log::log(\"Compiling fragment shader\");\n let fs_src = precision()+FS_SRC;\n let fs = compile_shader(&fs_src, gl::FRAGMENT_SHADER);\n sdl2::log::log(\"Linking shaders\");\n let program = link_program(vs, fs);\n\n let mut vao = 0;\n let mut vbo = 0;\n */\n unsafe {\n /*\n // Use shader program\n gl::UseProgram(program);\n\n //let col_attr = gl::GetAttribLocation(program, CString::new(\"color\").unwrap().as_ptr());\n\n // Specify the layout of the vertex data\n let pos_attr = gl::GetAttribLocation(program, CString::new(\"position\").unwrap().as_ptr());\n gl::EnableVertexAttribArray(pos_attr as GLuint);\n gl::VertexAttribPointer(pos_attr as GLuint,\n 2,\n gl::FLOAT,\n gl::FALSE as GLboolean,\n 0,\n mem::transmute(&VERTEX_DATA[0]));\n */\n }\n\n let mut event_pump = sdl_context.event_pump().unwrap();\n\n /*\n // test_shared is generated in build.rs\n match reload_handler.add_library(\"test_shared\", PlatformName::Yes) {\n Ok(lib) => plugs.add_plugin(&lib),\n Err(e) => {\n Log::error(\"Unable to load dynamic lib, err {:?}\", e);\n return;\n }\n }\n */\n\n let mut shader = Shader::new();\n shader.load_default();\n\n let mut tc = canvas.texture_creator();\n let mut tm = TextureManager::new(&tc);\n tm.load(String::from(\"wabbit\"), Path::new(\"assets/wabbit_alpha.png\"));\n let wabbit = tm.get(&String::from(\"wabbit\"));\n\n let playerVA = ScalingViewportAdapter::with_size_and_virtual(800, 600, 320, 240);\n let mut playerCamera = Camera::new();\n playerCamera.set_viewport_adapter(Some(playerVA));\n\n let mut scene = Scene::new(32);\n let mut e = scene.create_entity();\n //let tm = self.texture_manager.as_ref().unwrap();\n //let mut ic = ImageComponent::new();//with_texture(tm.get(&String::from(\"wabbit\")));\n //e.add(ic);\n scene.add(e);\n\n let mut rng = rand::thread_rng();\n\n\n let mut bunnies = [Bunny::new(); 100];\n for bunny in bunnies.iter_mut() {\n bunny.speed.x = rng.gen::<f32>() * 5.0;\n bunny.speed.x = (rng.gen::<f32>() * 5.0) - 2.5;\n }\n\n let mut sb = SpriteBatch::new();\n\n let mut imgui = ImGui::init();\n let ui = imgui.frame((800, 600), (800, 600), 0.0);\n //imgui.set_texture_id(0);\n\n //\n // While this is running (printing a number) change return value in file src/test_shared.rs\n // build the project with cargo build and notice that this code will now return the new value\n //\n 'running: loop {\n plugin_update(&mut plugs, &mut reload_handler);\n\n /*\n reload_handler.update(Plugins::reload_callback, &mut plugs);\n\n if plugs.plugins.len() > 0 {\n // In a real program you want to cache the symbol and not do it every time if your\n // application is performance critical\n let fun: Symbol<extern \"C\" fn() -> i32> =\n unsafe { plugs.plugins[0].lib.get(b\"shared_fun\\0\").unwrap() };\n\n Log::info(\"Value {}\", fun());\n }\n */\n\n for event in event_pump.poll_iter() {\n match event {\n Event::Quit { .. } |\n Event::KeyDown { keycode: Some(Keycode::Escape), .. } => break 'running,\n _ => {}\n }\n }\n\n canvas.set_draw_color(SdlColor::RGB(191, 255, 255));\n canvas.clear();\n\n /*\n sdl2::log::log(\"Drawing triangle\");\n unsafe {\n gl::DrawArrays(gl::TRIANGLES, 0, 3);\n }\n */\n\n ui.window(im_str!(\"Hello world\"))\n .size((300.0, 100.0), ImGuiSetCond_FirstUseEver)\n .build(|| {\n ui.text(im_str!(\"Hello world!\"));\n ui.text(im_str!(\"This...is...imgui-rs!\"));\n ui.separator();\n let mouse_pos = ui.imgui().mouse_pos();\n ui.text(im_str!(\"Mouse Position: ({:.1},{:.1})\", mouse_pos.0, mouse_pos.1));\n });\n\n {\n let position = Vector2::new(0.0, 0.0);\n let matrix: Matrix4<f32> = Matrix4::one();\n //sdl2::log::log(\"wabbit width and height follows\");\n //sdl2::log::log(&wabbit.get_height().to_string());\n //sdl2::log::log(&wabbit.get_width().to_string());\n sb.begin(&mut canvas, SpriteSortMode::SpriteSortModeDeferred, Some(&shader), Some(matrix));\n for bunny in bunnies.iter_mut() {\n bunny.update();\n sb.draw(wabbit.clone(), Some(bunny.position), None, None, None, 0.0, None, Color::white(), 0.0);\n }\n sb.end(&mut canvas);\n }\n\n\n canvas.present();\n\n //::std::thread::sleep(Duration::new(0, 1_000_000_000u32 / 60));\n // The rest of the game loop goes here...\n\n\n // Wait for 0.5 sec\n //thread::sleep(Duration::from_millis(500));\n // Replace with the following once we're done with testing\n thread::sleep(Duration::from_millis(0))\n }\n\n // Cleanup\n unsafe {\n /*\n gl::DeleteProgram(program);\n gl::DeleteShader(fs);\n gl::DeleteShader(vs);\n gl::DeleteBuffers(1, &vbo);\n */\n }\n }\n}\n\n#[derive(Clone, Copy, Debug)]\nstruct Bunny {\n position: Vector2<f32>,\n speed: Vector2<f32>,\n min: Vector2<f32>,\n max: Vector2<f32>,\n gravity: f32,\n}\n\nimpl Bunny {\n pub fn new() -> Self {\n let mut rng = rand::thread_rng();\n Bunny {\n position: Vector2::new(0.0, 0.0),\n speed: Vector2::new(rng.gen::<f32>() * 5.0, (rng.gen::<f32>() * 5.0) - 2.5),\n min: Vector2::new(0.0, 0.0),\n max: Vector2::new(800.0, 600.0),\n gravity: 0.5,\n }\n }\n\n pub fn update(&mut self) {\n let mut rng = rand::thread_rng();\n self.position.x += self.speed.x;\n self.position.y += self.speed.y;\n self.speed.y += self.gravity;\n\n if self.position.x > self.max.x {\n self.speed.x *= -1.0;\n self.position.x = self.max.x;\n } else if self.position.x < self.min.x {\n self.speed.x *= -1.0;\n self.position.x = self.min.x;\n }\n\n if self.position.y > self.max.y {\n self.speed.y *= -0.8;\n self.position.y = self.max.y;\n\n if rng.gen::<f32>() > 0.5 {\n self.speed.y -= 3.0 + rng.gen::<f32>() * 4.0;\n }\n } else if self.position.y < self.min.y {\n self.speed.y = 0.0;\n self.position.y = self.min.y;\n }\n\n }\n}"}}}` | |
TRACE:rls::server: Handling DidOpenTextDocument (params: DidOpenTextDocumentParams { text_document: TextDocumentItem { uri: "file:///Users/tanis/Documents/minigame-rust/src/engine.rs", language_id: Some("rust"), version: Some(1), text: "#[cfg(feature = \"hotload\")]\nextern crate dynamic_reload;\n\nextern crate sdl2;\nextern crate cgmath;\nextern crate rand;\nextern crate imgui;\n\n//#[cfg(not(feature = \"hotload\"))]\n//extern crate minigame;\n\n#[cfg(feature = \"hotload\")]\nuse dynamic_reload::{DynamicReload, Lib, Symbol, Search, PlatformName, UpdateState};\n#[cfg(feature = \"hotload\")]\nuse std::rc::Rc;\nuse std::time::Duration;\nuse std::thread;\nuse std::str;\nuse std::ffi::CString;\nuse std::ptr;\nuse std::mem;\nuse std::path::Path;\nuse std::cell::RefCell;\nuse sdl2::image::{LoadTexture, INIT_PNG, INIT_JPG};\nuse sdl2::pixels::Color as SdlColor;\nuse sdl2::event::Event;\nuse sdl2::keyboard::Keycode;\nuse sdl2::render::TextureCreator;\nuse sdl2::render::Texture as SdlTexture;\nuse sdl2::video::WindowContext;\nuse rand::Rng;\nuse imgui::*;\n\n#[cfg(not(feature = \"hotload\"))]\nuse test_shared::shared_fun;\n\nuse spritebatch::SpriteBatch;\nuse spritebatch::SpriteSortMode;\nuse color::Color;\nuse texture::Texture;\nuse texturemanager::TextureManager;\nuse shader::Shader;\nuse camera::Camera;\nuse viewportadapter::ScalingViewportAdapter;\nuse viewportadapter::ViewportAdapterTrait;\nuse scene::Scene;\nuse imagecomponent::ImageComponent;\nuse log::Log;\nuse self::cgmath::Vector2;\nuse self::cgmath::Matrix4;\nuse self::cgmath::One;\n\npub mod gl {\n include!(concat!(env!(\"OUT_DIR\"), \"/bindings.rs\"));\n}\nuse self::gl::types::*;\n\n#[cfg(feature = \"hotload\")]\nstruct Plugins {\n plugins: Vec<Rc<Lib>>,\n}\n\n#[cfg(feature = \"hotload\")]\nimpl Plugins {\n fn add_plugin(&mut self, plugin: &Rc<Lib>) {\n self.plugins.push(plugin.clone());\n }\n\n fn unload_plugins(&mut self, lib: &Rc<Lib>) {\n for i in (0..self.plugins.len()).rev() {\n if &self.plugins[i] == lib {\n self.plugins.swap_remove(i);\n }\n }\n }\n\n fn reload_plugin(&mut self, lib: &Rc<Lib>) {\n Self::add_plugin(self, lib);\n }\n\n // called when a lib needs to be reloaded.\n fn reload_callback(&mut self, state: UpdateState, lib: Option<&Rc<Lib>>) {\n match state {\n UpdateState::Before => Self::unload_plugins(self, lib.unwrap()),\n UpdateState::After => Self::reload_plugin(self, lib.unwrap()),\n UpdateState::ReloadFailed(_) => Log::error(\"Failed to reload\"),\n }\n }\n}\n\nfn find_sdl_gl_driver() -> Option<u32> {\n for (index, item) in sdl2::render::drivers().enumerate() {\n sdl2::log::log(item.name);\n if item.name.contains(\"opengl\") {\n sdl2::log::log(\"Driver chosen follows\");\n sdl2::log::log(item.name);\n return Some(index as u32);\n }\n }\n sdl2::log::log(\"No OpenGL driver chosen\");\n None\n}\n\n// Vertex data\nstatic VERTEX_DATA: [GLfloat; 6] = [0.0, 0.5, 0.5, -0.5, -0.5, -0.5];\n\n// Shader sources\n#[cfg(any(target_os=\"android\", target_os=\"ios\"))]\nfn precision() -> String {\n String::from(\"precision mediump float;\\n\")\n}\n\n#[cfg(not(any(target_os=\"android\", target_os=\"ios\")))]\nfn precision() -> String {\n String::from(\"\")\n}\n\nstatic VS_SRC: &\'static str = \"\\n\\\n attribute vec2 position;\\n\\\n varying vec4 color;\\n\\\n void main() {\\n\\\n gl_Position = vec4(position, 0.0, 1.0);\\n\\\n color = vec4(1.0, 1.0, 1.0, 1.0);\\n\\\n gl_PointSize = 1.0;\\n\\\n }\";\n\nstatic FS_SRC: &\'static str = \"\\n\\\n varying vec4 color;\\n\\\n void main() {\\n\\\n gl_FragColor = color;\\n\\\n }\";\n\npub fn foo() {\n \n}\n\nfn compile_shader(src: &str, ty: GLenum) -> GLuint {\n let shader;\n unsafe {\n shader = gl::CreateShader(ty);\n // Attempt to compile the shader\n let c_str = CString::new(src.as_bytes()).unwrap();\n gl::ShaderSource(shader, 1, &c_str.as_ptr(), ptr::null());\n gl::CompileShader(shader);\n\n // Get the compile status\n let mut status = gl::FALSE as GLint;\n gl::GetShaderiv(shader, gl::COMPILE_STATUS, &mut status);\n\n // Fail on error\n if status != (gl::TRUE as GLint) {\n let mut len = 0;\n gl::GetShaderiv(shader, gl::INFO_LOG_LENGTH, &mut len);\n let mut buf = Vec::with_capacity(len as usize);\n buf.set_len((len as usize) - 1); // subtract 1 to skip the trailing null character\n gl::GetShaderInfoLog(shader,\n len,\n ptr::null_mut(),\n buf.as_mut_ptr() as *mut GLchar);\n panic!(\"{}\",\n str::from_utf8(&buf)\n .ok()\n .expect(\"ShaderInfoLog not valid utf8\"));\n }\n }\n shader\n}\n\nfn link_program(vs: GLuint, fs: GLuint) -> GLuint {\n unsafe {\n let program = gl::CreateProgram();\n gl::AttachShader(program, vs);\n gl::AttachShader(program, fs);\n gl::LinkProgram(program);\n // Get the link status\n let mut status = gl::FALSE as GLint;\n gl::GetProgramiv(program, gl::LINK_STATUS, &mut status);\n\n // Fail on error\n if status != (gl::TRUE as GLint) {\n let mut len: GLint = 0;\n gl::GetProgramiv(program, gl::INFO_LOG_LENGTH, &mut len);\n let mut buf = Vec::with_capacity(len as usize);\n buf.set_len((len as usize) - 1); // subtract 1 to skip the trailing null character\n gl::GetProgramInfoLog(program,\n len,\n ptr::null_mut(),\n buf.as_mut_ptr() as *mut GLchar);\n panic!(\"{}\",\n str::from_utf8(&buf)\n .ok()\n .expect(\"ProgramInfoLog not valid utf8\"));\n }\n program\n }\n}\n\n#[cfg(feature = \"hotload\")]\nfn plugin_load<\'a>() -> (Plugins, DynamicReload<\'a>) {\n // Setup the reload handler. A temporary directory will be created inside the target/debug\n // where plugins will be loaded from. That is because on some OS:es loading a shared lib\n // will lock the file so we can\'t overwrite it so this works around that issue.\n let mut reload_handler = DynamicReload::new(Some(vec![\"target/debug\"]),\n Some(\"target/debug\"),\n Search::Default);\n let mut plugs = Plugins { plugins: Vec::new() };\n\n // test_shared is generated in build.rs\n match reload_handler.add_library(\"test_shared\", PlatformName::Yes) {\n Ok(lib) => plugs.add_plugin(&lib),\n Err(e) => {\n //Log::error(\"Unable to load dynamic lib, err {:?}\", e);\n return (plugs, reload_handler);\n }\n }\n\n (plugs, reload_handler)\n}\n\n#[cfg(not(feature = \"hotload\"))]\nfn plugin_load() -> (i32, i32) {\n (0, 0)\n}\n\n#[cfg(feature = \"hotload\")]\nfn plugin_update<\'a>(mut plugs: &mut Plugins, mut reload_handler: &mut DynamicReload<\'a>) {\n reload_handler.update(Plugins::reload_callback, &mut plugs);\n\n if plugs.plugins.len() > 0 {\n // In a real program you want to cache the symbol and not do it every time if your\n // application is performance critical\n let fun: Symbol<extern \"C\" fn() -> i32> =\n unsafe { plugs.plugins[0].lib.get(b\"shared_fun\\0\").unwrap() };\n\n //Log::info(\"Value {}\", fun());\n }\n}\n\n#[cfg(not(feature = \"hotload\"))]\nfn plugin_update(mut plugs: &mut i32, mut reload_handler: &mut i32) {\n //Log::info(\"Value {}\", shared_fun());\n}\n\npub struct Engine {\n}\n\nimpl Engine {\n pub fn new() -> Self {\n Engine {\n }\n }\n\n //#[cfg(feature = \"hotload\")]\n pub fn run_loop(&mut self) {\n let (mut plugs, mut reload_handler) = plugin_load();\n\n // Init SDL2\n let sdl_context = sdl2::init().unwrap();\n let video_subsystem = sdl_context.video().unwrap();\n\n let window = video_subsystem\n .window(\"minigame-rust\", 800, 600)\n .position_centered()\n .opengl()\n .build()\n .unwrap();\n\n sdl2::log::log(\"Looking for OpenGL drivers\");\n let mut canvas = window\n .into_canvas()\n .index(find_sdl_gl_driver().unwrap())\n .build()\n .unwrap();\n\n sdl2::log::log(\"Loading GL extensions\");\n gl::load_with(|s| video_subsystem.gl_get_proc_address(s) as *const _);\n sdl2::log::log(\"Setting current GL context\");\n canvas.window().gl_set_context_to_current();\n\n // Create GLSL shaders\n /*\n sdl2::log::log(\"Compiling vertex shader\");\n let vs_src = precision()+VS_SRC;\n let vs = compile_shader(&vs_src, gl::VERTEX_SHADER);\n sdl2::log::log(\"Compiling fragment shader\");\n let fs_src = precision()+FS_SRC;\n let fs = compile_shader(&fs_src, gl::FRAGMENT_SHADER);\n sdl2::log::log(\"Linking shaders\");\n let program = link_program(vs, fs);\n\n let mut vao = 0;\n let mut vbo = 0;\n */\n unsafe {\n /*\n // Use shader program\n gl::UseProgram(program);\n\n //let col_attr = gl::GetAttribLocation(program, CString::new(\"color\").unwrap().as_ptr());\n\n // Specify the layout of the vertex data\n let pos_attr = gl::GetAttribLocation(program, CString::new(\"position\").unwrap().as_ptr());\n gl::EnableVertexAttribArray(pos_attr as GLuint);\n gl::VertexAttribPointer(pos_attr as GLuint,\n 2,\n gl::FLOAT,\n gl::FALSE as GLboolean,\n 0,\n mem::transmute(&VERTEX_DATA[0]));\n */\n }\n\n let mut event_pump = sdl_context.event_pump().unwrap();\n\n /*\n // test_shared is generated in build.rs\n match reload_handler.add_library(\"test_shared\", PlatformName::Yes) {\n Ok(lib) => plugs.add_plugin(&lib),\n Err(e) => {\n Log::error(\"Unable to load dynamic lib, err {:?}\", e);\n return;\n }\n }\n */\n\n let mut shader = Shader::new();\n shader.load_default();\n\n let mut tc = canvas.texture_creator();\n let mut tm = TextureManager::new(&tc);\n tm.load(String::from(\"wabbit\"), Path::new(\"assets/wabbit_alpha.png\"));\n let wabbit = tm.get(&String::from(\"wabbit\"));\n\n let playerVA = ScalingViewportAdapter::with_size_and_virtual(800, 600, 320, 240);\n let mut playerCamera = Camera::new();\n playerCamera.set_viewport_adapter(Some(playerVA));\n\n let mut scene = Scene::new(32);\n let mut e = scene.create_entity();\n //let tm = self.texture_manager.as_ref().unwrap();\n //let mut ic = ImageComponent::new();//with_texture(tm.get(&String::from(\"wabbit\")));\n //e.add(ic);\n scene.add(e);\n\n let mut rng = rand::thread_rng();\n\n\n let mut bunnies = [Bunny::new(); 100];\n for bunny in bunnies.iter_mut() {\n bunny.speed.x = rng.gen::<f32>() * 5.0;\n bunny.speed.x = (rng.gen::<f32>() * 5.0) - 2.5;\n }\n\n let mut sb = SpriteBatch::new();\n\n let mut imgui = ImGui::init();\n let ui = imgui.frame((800, 600), (800, 600), 0.0);\n //imgui.set_texture_id(0);\n\n //\n // While this is running (printing a number) change return value in file src/test_shared.rs\n // build the project with cargo build and notice that this code will now return the new value\n //\n \'running: loop {\n plugin_update(&mut plugs, &mut reload_handler);\n\n /*\n reload_handler.update(Plugins::reload_callback, &mut plugs);\n\n if plugs.plugins.len() > 0 {\n // In a real program you want to cache the symbol and not do it every time if your\n // application is performance critical\n let fun: Symbol<extern \"C\" fn() -> i32> =\n unsafe { plugs.plugins[0].lib.get(b\"shared_fun\\0\").unwrap() };\n\n Log::info(\"Value {}\", fun());\n }\n */\n\n for event in event_pump.poll_iter() {\n match event {\n Event::Quit { .. } |\n Event::KeyDown { keycode: Some(Keycode::Escape), .. } => break \'running,\n _ => {}\n }\n }\n\n canvas.set_draw_color(SdlColor::RGB(191, 255, 255));\n canvas.clear();\n\n /*\n sdl2::log::log(\"Drawing triangle\");\n unsafe {\n gl::DrawArrays(gl::TRIANGLES, 0, 3);\n }\n */\n\n ui.window(im_str!(\"Hello world\"))\n .size((300.0, 100.0), ImGuiSetCond_FirstUseEver)\n .build(|| {\n ui.text(im_str!(\"Hello world!\"));\n ui.text(im_str!(\"This...is...imgui-rs!\"));\n ui.separator();\n let mouse_pos = ui.imgui().mouse_pos();\n ui.text(im_str!(\"Mouse Position: ({:.1},{:.1})\", mouse_pos.0, mouse_pos.1));\n });\n\n {\n let position = Vector2::new(0.0, 0.0);\n let matrix: Matrix4<f32> = Matrix4::one();\n //sdl2::log::log(\"wabbit width and height follows\");\n //sdl2::log::log(&wabbit.get_height().to_string());\n //sdl2::log::log(&wabbit.get_width().to_string());\n sb.begin(&mut canvas, SpriteSortMode::SpriteSortModeDeferred, Some(&shader), Some(matrix));\n for bunny in bunnies.iter_mut() {\n bunny.update();\n sb.draw(wabbit.clone(), Some(bunny.position), None, None, None, 0.0, None, Color::white(), 0.0);\n }\n sb.end(&mut canvas);\n }\n\n\n canvas.present();\n\n //::std::thread::sleep(Duration::new(0, 1_000_000_000u32 / 60));\n // The rest of the game loop goes here...\n\n\n // Wait for 0.5 sec\n //thread::sleep(Duration::from_millis(500));\n // Replace with the following once we\'re done with testing\n thread::sleep(Duration::from_millis(0))\n }\n\n // Cleanup\n unsafe {\n /*\n gl::DeleteProgram(program);\n gl::DeleteShader(fs);\n gl::DeleteShader(vs);\n gl::DeleteBuffers(1, &vbo);\n */\n }\n }\n}\n\n#[derive(Clone, Copy, Debug)]\nstruct Bunny {\n position: Vector2<f32>,\n speed: Vector2<f32>,\n min: Vector2<f32>,\n max: Vector2<f32>,\n gravity: f32,\n}\n\nimpl Bunny {\n pub fn new() -> Self {\n let mut rng = rand::thread_rng();\n Bunny {\n position: Vector2::new(0.0, 0.0),\n speed: Vector2::new(rng.gen::<f32>() * 5.0, (rng.gen::<f32>() * 5.0) - 2.5),\n min: Vector2::new(0.0, 0.0),\n max: Vector2::new(800.0, 600.0),\n gravity: 0.5,\n }\n }\n\n pub fn update(&mut self) {\n let mut rng = rand::thread_rng();\n self.position.x += self.speed.x;\n self.position.y += self.speed.y;\n self.speed.y += self.gravity;\n\n if self.position.x > self.max.x {\n self.speed.x *= -1.0;\n self.position.x = self.max.x;\n } else if self.position.x < self.min.x {\n self.speed.x *= -1.0;\n self.position.x = self.min.x;\n }\n\n if self.position.y > self.max.y {\n self.speed.y *= -0.8;\n self.position.y = self.max.y;\n\n if rng.gen::<f32>() > 0.5 {\n self.speed.y -= 3.0 + rng.gen::<f32>() * 4.0;\n }\n } else if self.position.y < self.min.y {\n self.speed.y = 0.0;\n self.position.y = self.min.y;\n }\n\n }\n}" } }) | |
TRACE:rls::actions: on_open: "file:///Users/tanis/Documents/minigame-rust/src/engine.rs" | |
TRACE:rls::server: reading: 38 bytes | |
TRACE:rls::server: parse_message `{"jsonrpc":"2.0","id":1,"result":null}` | |
TRACE:rls::server: parsing invalid message: Some(Failure { jsonrpc: Some(V2), error: Error { code: InvalidRequest, message: "Invalid request", data: None }, id: Num(1) }) | |
TRACE:rls::server: response: "Content-Length: 76\r\n\r\n{\"jsonrpc\":\"2.0\",\"error\":{\"code\":-32600,\"message\":\"Invalid request\"},\"id\":1}" | |
TRACE:rls::server: reading: 262 bytes | |
TRACE:rls::server: parse_message `{"jsonrpc":"2.0","id":1,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///Users/tanis/Documents/minigame-rust/src/engine.rs"},"range":{"start":{"line":413,"character":19},"end":{"line":413,"character":24}},"context":{"diagnostics":[]}}}` | |
TRACE:rls::server: Handling CodeAction (1) (params: CodeActionParams { text_document: TextDocumentIdentifier { uri: "file:///Users/tanis/Documents/minigame-rust/src/engine.rs" }, range: Range { start: Position { line: 413, character: 19 }, end: Position { line: 413, character: 24 } }, context: CodeActionContext { diagnostics: [] } }) | |
TRACE:rls::actions: code_action CodeActionParams { text_document: TextDocumentIdentifier { uri: "file:///Users/tanis/Documents/minigame-rust/src/engine.rs" }, range: Range { start: Position { line: 413, character: 19 }, end: Position { line: 413, character: 24 } }, context: CodeActionContext { diagnostics: [] } } | |
TRACE:rls::server: response: "Content-Length: 36\r\n\r\n{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":[]}" | |
TRACE:rls::server: reading: 38 bytes | |
TRACE:rls::server: parse_message `{"jsonrpc":"2.0","id":2,"result":null}` | |
TRACE:rls::server: parsing invalid message: Some(Failure { jsonrpc: Some(V2), error: Error { code: InvalidRequest, message: "Invalid request", data: None }, id: Num(2) }) | |
TRACE:rls::server: response: "Content-Length: 76\r\n\r\n{\"jsonrpc\":\"2.0\",\"error\":{\"code\":-32600,\"message\":\"Invalid request\"},\"id\":2}" | |
TRACE:rls::build::cargo: exec: main | |
TRACE:rls::build::cargo: rustc intercepted - args: ["--crate-name", "main", "src/main.rs", "--color", "never", "--crate-type", "bin", "--emit=dep-info,metadata", "-C", "debuginfo=2", "--cfg", "feature=\"default\"", "--cfg", "feature=\"dynamic_reload\"", "--cfg", "feature=\"hotload\"", "-C", "metadata=bb0cbcabfa212c1b", "-C", "extra-filename=-bb0cbcabfa212c1b", "--out-dir", "/Users/tanis/Documents/minigame-rust/target/rls/debug/deps", "-L", "dependency=/Users/tanis/Documents/minigame-rust/target/rls/debug/deps", "--extern", "sdl2=/Users/tanis/Documents/minigame-rust/target/rls/debug/deps/libsdl2-2980d547dc686e61.rmeta", "--extern", "png=/Users/tanis/Documents/minigame-rust/target/rls/debug/deps/libpng-8e12a6e0cbfd1246.rmeta", "--extern", "imgui=/Users/tanis/Documents/minigame-rust/target/rls/debug/deps/libimgui-a22b48cc133ab643.rmeta", "--extern", "log=/Users/tanis/Documents/minigame-rust/target/rls/debug/deps/liblog-caf9684d1f9b8f5a.rmeta", "--extern", "rand=/Users/tanis/Documents/minigame-rust/target/rls/debug/deps/librand-cf9928a31ec84b00.rmeta", "--extern", "rusttype=/Users/tanis/Documents/minigame-rust/target/rls/debug/deps/librusttype-7a1b1849ef5256d2.rmeta", "--extern", "cgmath=/Users/tanis/Documents/minigame-rust/target/rls/debug/deps/libcgmath-8326719986d39cda.rmeta", "--extern", "dynamic_reload=/Users/tanis/Documents/minigame-rust/target/rls/debug/deps/libdynamic_reload-9e5a101a6dc1a396.rmeta", "--extern", "minigame=/Users/tanis/Documents/minigame-rust/target/rls/debug/deps/libminigame.rmeta", "--error-format=json", "-Zcontinue-parse-after-error", "-Zsave-analysis", "-Zunstable-options", "-L", "native=/Users/tanis/Documents/minigame-rust/target/rls/debug/build/imgui-sys-b3503b55c8708663/out"] envs: {"CARGO_PKG_VERSION_MAJOR": Some("0"), "CARGO_MANIFEST_DIR": Some("/Users/tanis/Documents/minigame-rust"), "CARGO_PKG_VERSION_PRE": Some(""), "CARGO_PKG_NAME": Some("minigame"), "CARGO_PKG_HOMEPAGE": Some(""), "DYLD_LIBRARY_PATH": Some("/Users/tanis/Documents/minigame-rust/target/rls/debug/deps:/Users/tanis/.rustup/toolchains/nightly-x86_64-apple-darwin/lib"), "CARGO": Some("/Users/tanis/.rustup/toolchains/nightly-x86_64-apple-darwin/bin/rls"), "CARGO_PKG_VERSION_MINOR": Some("1"), "CARGO_PKG_VERSION": Some("0.1.0"), "OUT_DIR": Some("/Users/tanis/Documents/minigame-rust/target/rls/debug/build/minigame-c17e1588ef479d87/out"), "CARGO_PKG_VERSION_PATCH": Some("0"), "CARGO_PKG_AUTHORS": Some("Valerio Santinelli <santinelli@gmail.com>"), "CARGO_PKG_DESCRIPTION": Some("")} | |
TRACE:rls::build::rustc: rustc - args: `["rustc", "--crate-name", "main", "src/main.rs", "--color", "never", "--crate-type", "bin", "--emit=dep-info,metadata", "-C", "debuginfo=2", "--cfg", "feature=\"default\"", "--cfg", "feature=\"dynamic_reload\"", "--cfg", "feature=\"hotload\"", "-C", "metadata=bb0cbcabfa212c1b", "-C", "extra-filename=-bb0cbcabfa212c1b", "--out-dir", "/Users/tanis/Documents/minigame-rust/target/rls/debug/deps", "-L", "dependency=/Users/tanis/Documents/minigame-rust/target/rls/debug/deps", "--extern", "sdl2=/Users/tanis/Documents/minigame-rust/target/rls/debug/deps/libsdl2-2980d547dc686e61.rmeta", "--extern", "png=/Users/tanis/Documents/minigame-rust/target/rls/debug/deps/libpng-8e12a6e0cbfd1246.rmeta", "--extern", "imgui=/Users/tanis/Documents/minigame-rust/target/rls/debug/deps/libimgui-a22b48cc133ab643.rmeta", "--extern", "log=/Users/tanis/Documents/minigame-rust/target/rls/debug/deps/liblog-caf9684d1f9b8f5a.rmeta", "--extern", "rand=/Users/tanis/Documents/minigame-rust/target/rls/debug/deps/librand-cf9928a31ec84b00.rmeta", "--extern", "rusttype=/Users/tanis/Documents/minigame-rust/target/rls/debug/deps/librusttype-7a1b1849ef5256d2.rmeta", "--extern", "cgmath=/Users/tanis/Documents/minigame-rust/target/rls/debug/deps/libcgmath-8326719986d39cda.rmeta", "--extern", "dynamic_reload=/Users/tanis/Documents/minigame-rust/target/rls/debug/deps/libdynamic_reload-9e5a101a6dc1a396.rmeta", "--extern", "minigame=/Users/tanis/Documents/minigame-rust/target/rls/debug/deps/libminigame.rmeta", "--error-format=json", "-Zcontinue-parse-after-error", "-Zsave-analysis", "-Zunstable-options", "-L", "native=/Users/tanis/Documents/minigame-rust/target/rls/debug/build/imgui-sys-b3503b55c8708663/out", "--sysroot", "/Users/tanis/.rustup/toolchains/nightly-x86_64-apple-darwin"]`, envs: {"CARGO_PKG_VERSION_MAJOR": Some("0"), "CARGO_MANIFEST_DIR": Some("/Users/tanis/Documents/minigame-rust"), "CARGO_PKG_VERSION_PRE": Some(""), "CARGO_PKG_NAME": Some("minigame"), "CARGO_PKG_HOMEPAGE": Some(""), "DYLD_LIBRARY_PATH": Some("/Users/tanis/Documents/minigame-rust/target/rls/debug/deps:/Users/tanis/.rustup/toolchains/nightly-x86_64-apple-darwin/lib"), "CARGO": Some("/Users/tanis/.rustup/toolchains/nightly-x86_64-apple-darwin/bin/rls"), "CARGO_PKG_VERSION_MINOR": Some("1"), "CARGO_PKG_VERSION": Some("0.1.0"), "OUT_DIR": Some("/Users/tanis/Documents/minigame-rust/target/rls/debug/build/minigame-c17e1588ef479d87/out"), "CARGO_PKG_VERSION_PATCH": Some("0"), "CARGO_PKG_AUTHORS": Some("Valerio Santinelli <santinelli@gmail.com>"), "CARGO_PKG_DESCRIPTION": Some("")}, build dir: "/Users/tanis/Documents/minigame-rust" | |
TRACE:rls::actions: build - Success | |
DEBUG:rls::actions: reload analysis: "/Users/tanis/Documents/minigame-rust" | |
TRACE:rls::server: response: "Content-Length: 70\r\n\r\n{\"jsonrpc\":\"2.0\",\"method\":\"rustDocument/diagnosticsEnd\",\"params\":null}" | |
TRACE:rls::server: reading: 187 bytes | |
TRACE:rls::server: parse_message `{"jsonrpc":"2.0","id":2,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///Users/tanis/Documents/minigame-rust/src/engine.rs"},"position":{"line":412,"character":26}}}` | |
TRACE:rls::server: Handling Hover (2) (params: TextDocumentPositionParams { text_document: TextDocumentIdentifier { uri: "file:///Users/tanis/Documents/minigame-rust/src/engine.rs" }, position: Position { line: 412, character: 26 } }) | |
TRACE:rls::actions: convert_pos_to_span: "/Users/tanis/Documents/minigame-rust/src/engine.rs" Position { line: 412, character: 26 } | |
TRACE:rls::actions: line: ` //sdl2::log::log(&wabbit.get_width().to_string()); | |
` | |
TRACE:rls::actions: start: 24 | |
TRACE:rls::actions: end: 27 | |
TRACE:rls::actions: hover: Span { file: "/Users/tanis/Documents/minigame-rust/src/engine.rs", range: Range { row_start: Row(412, PhantomData), row_end: Row(412, PhantomData), col_start: Column(24, PhantomData), col_end: Column(27, PhantomData) } } | |
TRACE:rls::server: response: "Content-Length: 62\r\n\r\n{\"jsonrpc\":\"2.0\",\"id\":2,\"result\":{\"contents\":[],\"range\":null}}" | |
TRACE:rls::server: reading: 187 bytes | |
TRACE:rls::server: parse_message `{"jsonrpc":"2.0","id":3,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///Users/tanis/Documents/minigame-rust/src/engine.rs"},"position":{"line":413,"character":22}}}` | |
TRACE:rls::server: Handling Hover (3) (params: TextDocumentPositionParams { text_document: TextDocumentIdentifier { uri: "file:///Users/tanis/Documents/minigame-rust/src/engine.rs" }, position: Position { line: 413, character: 22 } }) | |
TRACE:rls::actions: convert_pos_to_span: "/Users/tanis/Documents/minigame-rust/src/engine.rs" Position { line: 413, character: 22 } | |
TRACE:rls::actions: line: ` sb.begin(&mut canvas, SpriteSortMode::SpriteSortModeDeferred, Some(&shader), Some(matrix)); | |
` | |
TRACE:rls::actions: start: 19 | |
TRACE:rls::actions: end: 24 | |
TRACE:rls::actions: hover: Span { file: "/Users/tanis/Documents/minigame-rust/src/engine.rs", range: Range { row_start: Row(413, PhantomData), row_end: Row(413, PhantomData), col_start: Column(19, PhantomData), col_end: Column(24, PhantomData) } } | |
TRACE:rls::server: response: "Content-Length: 62\r\n\r\n{\"jsonrpc\":\"2.0\",\"id\":3,\"result\":{\"contents\":[],\"range\":null}}" | |
TRACE:rls::server: reading: 187 bytes | |
TRACE:rls::server: parse_message `{"jsonrpc":"2.0","id":4,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///Users/tanis/Documents/minigame-rust/src/engine.rs"},"position":{"line":413,"character":28}}}` | |
TRACE:rls::server: Handling Hover (4) (params: TextDocumentPositionParams { text_document: TextDocumentIdentifier { uri: "file:///Users/tanis/Documents/minigame-rust/src/engine.rs" }, position: Position { line: 413, character: 28 } }) | |
TRACE:rls::actions: convert_pos_to_span: "/Users/tanis/Documents/minigame-rust/src/engine.rs" Position { line: 413, character: 28 } | |
TRACE:rls::actions: line: ` sb.begin(&mut canvas, SpriteSortMode::SpriteSortModeDeferred, Some(&shader), Some(matrix)); | |
` | |
TRACE:rls::actions: start: 26 | |
TRACE:rls::actions: end: 29 | |
TRACE:rls::actions: hover: Span { file: "/Users/tanis/Documents/minigame-rust/src/engine.rs", range: Range { row_start: Row(413, PhantomData), row_end: Row(413, PhantomData), col_start: Column(26, PhantomData), col_end: Column(29, PhantomData) } } | |
TRACE:rls::server: response: "Content-Length: 62\r\n\r\n{\"jsonrpc\":\"2.0\",\"id\":4,\"result\":{\"contents\":[],\"range\":null}}" | |
TRACE:rls::server: reading: 192 bytes | |
TRACE:rls::server: parse_message `{"jsonrpc":"2.0","id":5,"method":"textDocument/definition","params":{"textDocument":{"uri":"file:///Users/tanis/Documents/minigame-rust/src/engine.rs"},"position":{"line":413,"character":23}}}` | |
TRACE:rls::server: Handling GotoDefinition (5) (params: TextDocumentPositionParams { text_document: TextDocumentIdentifier { uri: "file:///Users/tanis/Documents/minigame-rust/src/engine.rs" }, position: Position { line: 413, character: 23 } }) | |
TRACE:rls::actions: convert_pos_to_span: "/Users/tanis/Documents/minigame-rust/src/engine.rs" Position { line: 413, character: 23 } | |
TRACE:rls::actions: line: ` sb.begin(&mut canvas, SpriteSortMode::SpriteSortModeDeferred, Some(&shader), Some(matrix)); | |
` | |
TRACE:rls::actions: start: 19 | |
TRACE:rls::actions: end: 24 | |
INFO:rls::actions: goto_def - falling back to Racer | |
TRACE:rls::server: response: "Content-Length: 36\r\n\r\n{\"jsonrpc\":\"2.0\",\"id\":5,\"result\":[]}" | |
TRACE:rls::server: reading: 187 bytes | |
TRACE:rls::server: parse_message `{"jsonrpc":"2.0","id":6,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///Users/tanis/Documents/minigame-rust/src/engine.rs"},"position":{"line":413,"character":22}}}` | |
TRACE:rls::server: Handling Hover (6) (params: TextDocumentPositionParams { text_document: TextDocumentIdentifier { uri: "file:///Users/tanis/Documents/minigame-rust/src/engine.rs" }, position: Position { line: 413, character: 22 } }) | |
TRACE:rls::actions: convert_pos_to_span: "/Users/tanis/Documents/minigame-rust/src/engine.rs" Position { line: 413, character: 22 } | |
TRACE:rls::actions: line: ` sb.begin(&mut canvas, SpriteSortMode::SpriteSortModeDeferred, Some(&shader), Some(matrix)); | |
` | |
TRACE:rls::actions: start: 19 | |
TRACE:rls::actions: end: 24 | |
TRACE:rls::actions: hover: Span { file: "/Users/tanis/Documents/minigame-rust/src/engine.rs", range: Range { row_start: Row(413, PhantomData), row_end: Row(413, PhantomData), col_start: Column(19, PhantomData), col_end: Column(24, PhantomData) } } | |
TRACE:rls::server: response: "Content-Length: 62\r\n\r\n{\"jsonrpc\":\"2.0\",\"id\":6,\"result\":{\"contents\":[],\"range\":null}}" | |
TRACE:rls::server: reading: 199 bytes | |
TRACE:rls::server: parse_message `{"jsonrpc":"2.0","id":7,"method":"textDocument/documentHighlight","params":{"textDocument":{"uri":"file:///Users/tanis/Documents/minigame-rust/src/engine.rs"},"position":{"line":413,"character":22}}}` | |
TRACE:rls::server: Handling DocumentHighlight (7) (params: TextDocumentPositionParams { text_document: TextDocumentIdentifier { uri: "file:///Users/tanis/Documents/minigame-rust/src/engine.rs" }, position: Position { line: 413, character: 22 } }) | |
TRACE:rls::actions: convert_pos_to_span: "/Users/tanis/Documents/minigame-rust/src/engine.rs" Position { line: 413, character: 22 } | |
TRACE:rls::actions: line: ` sb.begin(&mut canvas, SpriteSortMode::SpriteSortModeDeferred, Some(&shader), Some(matrix)); | |
` | |
TRACE:rls::actions: start: 19 | |
TRACE:rls::actions: end: 24 | |
TRACE:rls::server: response: "Content-Length: 36\r\n\r\n{\"jsonrpc\":\"2.0\",\"id\":7,\"result\":[]}" | |
TRACE:rls::server: reading: 262 bytes | |
TRACE:rls::server: parse_message `{"jsonrpc":"2.0","id":8,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///Users/tanis/Documents/minigame-rust/src/engine.rs"},"range":{"start":{"line":413,"character":19},"end":{"line":413,"character":24}},"context":{"diagnostics":[]}}}` | |
TRACE:rls::server: Handling CodeAction (8) (params: CodeActionParams { text_document: TextDocumentIdentifier { uri: "file:///Users/tanis/Documents/minigame-rust/src/engine.rs" }, range: Range { start: Position { line: 413, character: 19 }, end: Position { line: 413, character: 24 } }, context: CodeActionContext { diagnostics: [] } }) | |
TRACE:rls::actions: code_action CodeActionParams { text_document: TextDocumentIdentifier { uri: "file:///Users/tanis/Documents/minigame-rust/src/engine.rs" }, range: Range { start: Position { line: 413, character: 19 }, end: Position { line: 413, character: 24 } }, context: CodeActionContext { diagnostics: [] } } | |
TRACE:rls::server: response: "Content-Length: 36\r\n\r\n{\"jsonrpc\":\"2.0\",\"id\":8,\"result\":[]}" | |
TRACE:rls::server: reading: 192 bytes | |
TRACE:rls::server: parse_message `{"jsonrpc":"2.0","id":9,"method":"textDocument/definition","params":{"textDocument":{"uri":"file:///Users/tanis/Documents/minigame-rust/src/engine.rs"},"position":{"line":413,"character":22}}}` | |
TRACE:rls::server: Handling GotoDefinition (9) (params: TextDocumentPositionParams { text_document: TextDocumentIdentifier { uri: "file:///Users/tanis/Documents/minigame-rust/src/engine.rs" }, position: Position { line: 413, character: 22 } }) | |
TRACE:rls::actions: convert_pos_to_span: "/Users/tanis/Documents/minigame-rust/src/engine.rs" Position { line: 413, character: 22 } | |
TRACE:rls::actions: line: ` sb.begin(&mut canvas, SpriteSortMode::SpriteSortModeDeferred, Some(&shader), Some(matrix)); | |
` | |
TRACE:rls::actions: start: 19 | |
TRACE:rls::actions: end: 24 | |
INFO:rls::actions: goto_def - falling back to Racer | |
TRACE:rls::server: response: "Content-Length: 36\r\n\r\n{\"jsonrpc\":\"2.0\",\"id\":9,\"result\":[]}" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment