aboutsummaryrefslogtreecommitdiff
path: root/javascript/app/components/type-component.js
diff options
context:
space:
mode:
Diffstat (limited to 'javascript/app/components/type-component.js')
-rw-r--r--javascript/app/components/type-component.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/javascript/app/components/type-component.js b/javascript/app/components/type-component.js
new file mode 100644
index 0000000..c19facc
--- /dev/null
+++ b/javascript/app/components/type-component.js
@@ -0,0 +1,29 @@
+import Ember from 'ember';
+import {goToDefinition} from '../utils/go-to-definition';
+
+export default Ember.Component.extend({
+ store : Ember.inject.service('store'),
+ tagName : 'span',
+ classNames: ["type-component"],
+ contextMenu() {//right mouse button click to show kind of a type constructor or type variable
+ if(this.get('identifiers') && this.get('internalId')) {
+ this.set('expanded',true);
+ }
+ return false;
+ },
+ linkClass : Ember.computed('identifierInfo',function() {
+ return this.get('identifierInfo') ? "link" : "";
+ }),
+ identifierInfo : Ember.computed('internalId',function() {
+ return this.get('internalId') ? this.get('identifiers')[this.get('internalId')] : null;
+ }),
+ actions : {
+ onmouseup (event) {
+ if(this.get('identifierInfo') && (event.which !== 3 )) {
+ const locationInfo = this.get('identifierInfo').locationInfo;
+ goToDefinition(this.get('store'),locationInfo,event.which,this.get('currentLineNumber'));
+ return false;
+ }
+ }
+ }
+});